Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 四分之一圆轮廓的点_Python_Rotation_Line_Geometry_Tkinter Canvas - Fatal编程技术网

Python 四分之一圆轮廓的点

Python 四分之一圆轮廓的点,python,rotation,line,geometry,tkinter-canvas,Python,Rotation,Line,Geometry,Tkinter Canvas,我今天的问题是,我不想为一根倒下的棍子制作动画。因此,首先,这根棍子是: | 然后它落在右边: / _ 但是如何使用Python画布获得动画呢? 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(

我今天的问题是,我不想为一根倒下的棍子制作动画。因此,首先,这根棍子是: | 然后它落在右边: / _ 但是如何使用Python画布获得动画呢? 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()
所以棍子应该是这样的:


正如你在上面的脚本中所看到的,我的问题已经解决了:)

如果你的棍子的长度是400,而不在原点的一端的x位置是i,那么根据毕达哥拉斯定理,y位置就是sqrt(400^2-i^2)-或者我错过了点?(并非双关语。)

2个坐标。一个(停留):(0,0)另一个(x,y)我需要找到那个。所以长度是400,停留点是0,0,我需要得到另一个的点,这样它的方向看起来像一个半径为400,中间为0,0的四分之一圆。然后是的,移动端的坐标是(x,sqrt(400^2-x^2))。否。我现在拥有的,看起来很棒,但不是我需要的。上面有一个图形,显示了我需要的东西。您的选项生成一条线,从0,0开始,到400400结束。这条路看起来很棒,但我需要从0400到400,0的数据。你确定输入的正确吗?x=0->y=sqrt(400^2-x^2)=sqrt(400^2)=400;x=400->y=sqrt(400^2-x^2)=sqrt(0)=0这些是条件,不是吗?情节是四分之一圆(在你感兴趣的领域):等等。也许这正是我需要的——但事实恰恰相反。你知道-我想这是正确的动画,但有错误的点。我想在这个时刻,我是愚蠢的或累了,或其他什么,让它到正确的点。你能再帮我一次吗?你的是从0,0到400400,所以我们需要将一个400移动到一个0,0(0400)和400,0(400400)。请帮我解决我大脑中的小问题:为什么不把你的答案作为答案,这样你就可以标记和关闭这个问题,或者把你得到的答案标记为接受,如果它有助于你解决问题。