2005年11月07日 星期一 06:56
下面的代码可以运行,并且在CONSOLE上出现结果,
请问如何
在Tkinter里实现?
多谢了!
from math import sqrt
class Point:
def __init__(self,x,y):
self.x = x
self.y = y
def draw(self):
print 'point at (%d,%d)'%(self.x,self.y)
class Line:
def __init__(self,head,tail):
self.head = head
self.tail = tail
dx = self.head.x - self.tail.x
dy = self.head.y - self.tail.y
self.length = sqrt(dx*dx + dy*dy)
def draw(self):
print 'dawing line'
print 'line starts at: '
self.head.draw()
print 'line ends at: '
self.tail.draw()
class Polygon:
def __init__(self,lines):
self.lines = lines
self.__perimeter = None
def draw(self):
print 'drawing polygon'
print 'poly has %d lines'%len(self.lines)
for line in self.lines:
line.draw()
print 'polygon done'
def perimeter(self):
if not self.__perimeter:
self.__perimeter = 0
for line in self.lines:
self.__perimeter += line.length
if self.lines[0] != self.lines[-1]:
p2 = self.lines[0].head
p1 = self.lines[-1].tail
dx = p2.x - p1.x
dy = p2.y - p1.y
self.__perimeter += sqrt(dx*dx + dy*dy)
return self.__perimeter
class Route:
def __init__(self,legs):
self.legs = legs
d = 0
for leg in self.legs:
d += leg.length
self.distance = d
def draw(self):
print 'drawing route'
for leg in self.legs:
leg.draw()
class Map:
def __init__(self,objects):
self.objects = objects
self.draw()
def draw(self):
for object in self.objects:
object.draw()
p1 = Point(1,2)
p2 = Point(3,4)
p3 = Point(7,8)
p4 = Point(12,1)
line1 = Line(p1,p2)
line2 = Line(p2,p3)
line3 = Line(p3,p1)
line4 = Line(p1,p3)
poly1 = Polygon([line1,line2,line3])
route1 = Route([line2,line2,line3,line4])
map = Map([p1,p2,p3,line1,line2,poly1])
Zeuux © 2025
京ICP备05028076号