python中带箭头的简单2d曲面?

python中带箭头的简单2d曲面?,python,canvas,rotation,tkinter,2d,Python,Canvas,Rotation,Tkinter,2d,我以前没有在python中工作过。我需要做一个非常简单的2d曲面,在这里我可以放置一个箭头,然后可以改变箭头的位置和角度 我开始在tkinter中构建类似的东西,但据我所知,您无法旋转图像。据我所知,只有多边形可以旋转。将箭头绘制为多边形似乎有点过于复杂 还有其他更适合这种简单东西的工具吗 感谢wxPython GUI工具包(被认为比TkInter更好、更专业)为其图像类提供了一个rotate方法: Python图像库(不是GUI工具包,而是图像库)同样支持图像旋转:。Tkinter是完成此类简

我以前没有在python中工作过。我需要做一个非常简单的2d曲面,在这里我可以放置一个箭头,然后可以改变箭头的位置和角度

我开始在tkinter中构建类似的东西,但据我所知,您无法旋转图像。据我所知,只有多边形可以旋转。将箭头绘制为多边形似乎有点过于复杂

还有其他更适合这种简单东西的工具吗

感谢

wxPython GUI工具包(被认为比TkInter更好、更专业)为其图像类提供了一个rotate方法:


Python图像库(不是GUI工具包,而是图像库)同样支持图像旋转:。

Tkinter是完成此类简单任务的最佳选择。您几乎可以肯定已经安装了它,并且该小部件非常强大。它有内置的设施来画线,线的末端有一个箭头,旋转非常直接

不要让关于Tkinter的“常识”左右你——它是一个现代化、稳定且极易使用的工具包。你不能用它创建下一个photoshop或iMovie,但对于大多数人和大多数应用程序来说,它是一个非常可靠、实用的选择

下面是一个简单的例子:

import Tkinter as tk
import math

class ExampleApp(tk.Tk):
    def __init__(self):
        tk.Tk.__init__(self)
        self.canvas = tk.Canvas(self, width=400, height=400)
        self.canvas.pack(side="top", fill="both", expand=True)
        self.canvas.create_line(200,200, 200,200, tags=("line",), arrow="last")
        self.rotate()

    def rotate(self, angle=0):
        '''Animation loop to rotate the line by 10 degrees every 100 ms'''
        a = math.radians(angle)
        r = 50
        x0, y0 = (200,200)
        x1 = x0 + r*math.cos(a)
        y1 = y0 + r*math.sin(a)
        x2 = x0 + -r*math.cos(a)
        y2 = y0 + -r*math.sin(a)
        self.canvas.coords("line", x1,y1,x2,y2)
        self.after(100, lambda angle=angle+10: self.rotate(angle))

app = ExampleApp()
app.mainloop()

您可以查看visual和/或vpython。
Vpython声称自己是为普通人设计的3D程序。它基于我以前使用过的视觉效果,而且很容易找到。

我同意。我发现我的
Tkinter
应用看起来和感觉都很好。代码看起来很棒。我会亲自试试看。谢谢这看起来是一个很好的候选答案。链接到API或其他东西将有助于使这个答案更完整。您如何定义“更专业”?这句话对我来说没有任何意义,只是从结果GUI的外观来看。我真的与wxPython没有任何个人利害关系,这只是我听到人们说的(关于Tkinter)。不管怎样我都不在乎。