我正在尝试制作一个计算器,用于在Tkinter的帮助下使用坐标找到多边形的区域。
到目前为止我所拥有的是......
from tkinter import *
class AreaCalculator:
def __init__ (self):
window = Tk()
window.title("Area CalCulator")
Label(window, text ="Coordiantes")
Label(window, text='X1').grid(row=1,column=1,sticky=W)
Label(window, text='X2').grid(row=2,column=1,sticky=W)
Label(window, text='X3').grid(row=3,column=1,sticky=W)
Label(window, text='X4').grid(row=4,column=1,sticky=W)
Label(window, text='X5').grid(row=5,column=1,sticky=W)
Label(window, text='X6').grid(row=6,column=1,sticky=W)
Label(window, text='Y1').grid(row=1,column=3)
Label(window, text='Y1').grid(row=1,column=3)
Label(window, text='Y2').grid(row=2,column=3)
Label(window, text='Y3').grid(row=3,column=3)
Label(window, text='Y4').grid(row=4,column=3)
Label(window, text='Y5').grid(row=5,column=3)
Label(window, text='Y6').grid(row=6,column=3)
Label(window, text="Area1").grid(row=7,column=1)
Label(window, text="Area2").grid(row=7,column=3)
Label(window, text="Total Area").grid(row=8,column=2)
self.X1 = StringVar()
Entry(window, textvariable=self.X1).grid(column=2,row=1)
self.X2 = StringVar()
Entry(window, textvariable=self.X2).grid(column=2,row=2)
self.X3 = StringVar()
Entry(window, textvariable=self.X3).grid(column=2,row=3)
self.X4 = StringVar()
Entry(window, textvariable=self.X4).grid(column=2,row=4)
self.X5 = StringVar()
Entry(window, textvariable=self.X5).grid(column=2,row=5)
self.X6 = StringVar()
Entry(window, textvariable=self.X6).grid(column=2,row=6)
self.Y1 = StringVar()
Entry(window, textvariable=self.Y1).grid(column=4,row=1,sticky=E)
self.Y2 = StringVar()
Entry(window, textvariable=self.Y2).grid(column=4,row=2,sticky=E)
self.Y3 = StringVar()
Entry(window, textvariable=self.Y3).grid(column=4,row=3,sticky=E)
self.Y4 = StringVar()
Entry(window, textvariable=self.Y4).grid(column=4,row=4,sticky=E)
self.Y5 = StringVar()
Entry(window, textvariable=self.Y5).grid(column=4,row=5,sticky=E)
self.Y6 = StringVar()
Entry(window, textvariable=self.Y6).grid(column=4,row=6,sticky=E)
self.Area1=StringVar()
labelArea1=Label(window,textvariable=self.Area1).grid(column=2,row=7)
self.Area2=StringVar()
labelArea2=Label(window,textvariable=self.Area2).grid(column=4,row=7)
self.TotalArea=StringVar
Label(window,textvariable=self.TotalArea).grid(column=3,row=8)
btSolve=Button(window,text="Solve",command=self.Solve).grid(row=9,column=4)
window.mainloop()
def Solve(self):
Area1=self.getArea1(int(self.X1.get()),int(self.X2.get()),
int(self.X3.get()),int(self.X4.get()),
int(self.X5.get()),int(self.X6.get()),
int(self.Y1.get()),int(self.Y2.get()),
int(self.Y3.get()),int(self.Y4.get()),
int(self.Y5.get()),int(self.Y6.get()))
Area2=self.getArea2(int(self.X1.get()),int(self.X2.get()),
int(self.X3.get()),int(self.X4.get()),
int(self.X5.get()),int(self.X6.get()),
int(self.Y1.get()),int(self.Y2.get()),
int(self.Y3.get()),int(self.Y4.get()),
int(self.Y5.get()),int(self.Y6.get()))
TotalArea=((self.Area1.get())*(self.Are2.get()))/2
def Area1(self,X1,X2,X3,X4,X5,X6,Y1,Y2,Y3,Y4,Y5,Y6): # note
Area1 = # incomplete syntax
AreaCalculator()
答案 0 :(得分:-2)
def Solve( self ):
Area1 = self.getArea1( int( self.X1.get() ), \
int( self.X2.get() ), \
int( self.X3.get() ), \
int( self.X4.get() ), \
int( self.X5.get() ), \
int( self.X6.get() ), \
int( self.Y1.get() ), \
int( self.Y2.get() ), \
...
..
) # ^ python syntax for line-continuation
如果上面的“HAHA说明”与长时间行引发的python
语法错误无关,而相当与未表达问题无关使用核心计算策略(不是Tkinter本身)如何计算一般的,不规则的,非限制性多边形的2D区域,具有6个分离顶点,解决方案可以基于任何发现在给定的6元组顶点的有序集合中的这种三角测量,其具有非交叉边缘并且对这种三角测量元素集合的区域求和。由于FORTRAN有限元求解器库在60-s / 70-s后期落地,并且可能使用基于属于“相邻”顶点的边缘细分的三角形,因此在三角测量策略中如何避免凸/凹问题的技术已经大量发展。
所以,确实,这与 Tkinter 或 python
无关网上有很多三角测量策略。
请原谅我没有得到正确的O / P点。