2014-12-03 113 views
0

今天我的问题是,我不想为一个落下的棍子制作动画。所以首先站在: | 然后它落在右侧: / _ 但是,如何使用Pythons Canvas获得该动画? 帆布不具备的功能旋转项目,所以我需要一个数学公式一样 X = Y * Z 我的剧本到现在:四分之一圆轮廓的点数

from tkinter import * 
from time import sleep 
root = Tk() 
root.geometry("400x400") 
root.resizable(0,0) 
canv = Canvas(root) 
canv.pack(fill="both", expand=True) 
line = canv.create_line(1,400,1,0,fill="#000000") 

def test(): 
    y = 1 
    for i in range(1,401): 
     sleep(0.005) 
     x= i 
     y= 400 - sqrt(400**2 - x**2)  ###### Problem already solved :) 
     canv.coords(line, 0, 400, x, y) 
     root.update() 

test() 

那么棒应该是这样的: enter image description here

正如你可以在脚本中看到的那样,我的问题已经解决了:)

+0

为什么不发布您的解决方案作为答案,以便您可以标记和关闭问题,或考虑标记您接受的答案,如果它帮助您解决问题。 – K3N 2014-12-03 17:04:40

回答

0

如果棒的长度是400,并且末端不在原点的x位置是i,那么根据毕达哥拉斯定理,y位置只是sqrt(400^2 - i^2) - 或者我错过了点? (Pun没有打算。)

+0

2个坐标。一个(逗留):(0,0)另一个(x,y)我需要找到它。所以长度是400,停留点是0,0,我需要得到另一个路上的点,所以它看起来像一个四分之一圆,半径为400,中间点为0,0 。 – 2014-12-03 15:59:52

+0

那么是的,移动端的坐标是(x,sqrt(400^2 - x^2))。 – 2014-12-03 16:04:24

+0

不,我现在拥有的,看起来很棒,但不是我所需要的。现在有一个图形,显示我需要什么。您的选项会生成一条从0,0开始到400,400结束的行。该方式看起来很棒,但我需要的东西从0,400到400,0 – 2014-12-03 16:11:25