我以前没有用过 python。我需要做一个非常简单的 2d 表面,我可以在其中放置箭头,然后能够更改箭头的位置和角度。
我开始在 tkinter 中构建类似的东西,但据我了解,您无法旋转图像。据我了解,只能旋转多边形。将箭头绘制为多边形似乎有点过于复杂。
有没有其他工具更适合这种简单的东西?
谢谢
最佳答案
Tkinter 是完成此类简单任务的绝佳选择。您几乎可以肯定已经安装了它,并且 Canvas小部件非常强大。它有内置的工具来绘制末端有箭头的线,并且旋转非常简单。
不要让有关 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()
关于python - python 中带有箭头的简单 2d 表面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12529938/