在Tkinter中将方程表示为画布对象

时间:2013-07-21 01:52:23

标签: python tkinter

我试图创建一个程序来处理在Tkinter中的画布对象上渲染的符号方程式。该程序需要能够绘制一个等式,然后当用户点击等式时,我需要知道他们点击了哪个符号。

我考虑了几种方法:

我可以手动编写一个数学渲染程序,告诉Canvas对象放置哪些符号,然后它们只是文本对象,其点击事件我可以检测到正常的方式。然而,这似乎是多余的努力,而且我不能使它非常漂亮。

我可以使用库将等式渲染为图像,然后编写我自己的代码以找出不同符号的大致位置,然后检测点击并确定用户点击的点击位置。这很黑,听起来不可靠。此外,它意味着我需要编写代码来检测符号的位置。

还有其他想法吗?

1 个答案:

答案 0 :(得分:-1)

从字符串中获取方程可能是最好的主意。

这可能不是最好的方法,但它仍然是一个有效的选项,您可以按原样获取字符串,然后将x值替换为使用eval()函数的x。

equation = "2^x"

for x in range(length of graph):
    x2 = x-1 #to draw a line from this point to the previous one. 
    canvas.create_line(x, eval(equation), x2, eval(equation.replace('x', "x2"))
相关问题