所以我正在尝试创建一个函数,让用户输入矩形的长度和宽度,然后让python在图形的中心绘制该矩形(使用图形模块)。所以我想知道如何添加坐标,因为我收到错误消息。这是我到目前为止所得到的:
def drawRectangle():
win = GraphWin('Target',200,200)
win.setCoords(0,0,200,200)
width = int(input('Enter the width of your rectangle: '))
length = int(input('Enter the length of your rectangle: '))
**topLeft = Point(100,100)+Point(0,width/2)-Point(length/2,0)
bottomRight = Point(100,100)-Point(0,width/2)+Point(length/2,0)**
rec = Rectangle(Point(topLeft.getX, topLeft.getY), Point(bottomRight.getX, bottomRight.getY))
rec.draw(win)
有点混乱,我把它放在两个星号之间
帮助将不胜感激
答案 0 :(得分:1)
由于Point
属于另一个类,因此您必须编写自己的函数来一起添加一系列Points
。
你可以尝试这个,但我不知道它是否会破坏任何东西(虽然我会感到惊讶,因为似乎+
没有使用Points
:
在尝试添加任何Points
之前添加此内容:
from graphics import *
p1 = Point(1,2)
p2 = Point(3,4)
def addPoints(self, other):
return Point(self.x + other.x, self.y + other.y)
Point.__add__ = addPoints
for point in [p1, p2, p1+p2]:
print "(%i, %i)" % (point.x, point.y)
给出了:
(1, 2)
(3, 4)
(4, 6)
这可能有效,但我还没有测试过。如果确实有效,那么您也可以重新定义其他操作。
答案 1 :(得分:0)
假设x坐标从左到右,y-coords从上到下
centre = Point(w_width/2,w_height/2)
topleft = centre.clone().move(-r_width/2,-r_height/2)
botright = centre.clone().move(+r_width/2,+r_height/2)