你如何在python中添加坐标?

时间:2014-10-17 10:27:28

标签: python graphics

所以我正在尝试创建一个函数,让用户输入矩形的长度和宽度,然后让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)

有点混乱,我把它放在两个星号之间

帮助将不胜感激

2 个答案:

答案 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)