如何在python中添加坐标?

如何在python中添加坐标?,python,graphics,Python,Graphics,因此,我尝试创建一个函数,让用户输入矩形的长度和宽度,然后让python在图形的中心绘制矩形(使用图形模块)。所以我想知道,当我收到一条错误消息时,如何添加坐标。到目前为止,我得到的是: def drawRectangle(): win = GraphWin('Target',200,200) win.setCoords(0,0,200,200) width = int(input('Enter the width of your rect

因此,我尝试创建一个函数,让用户输入矩形的长度和宽度,然后让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)
我放在两个星号之间的那一点搞砸了


非常感谢您的帮助

因为
属于另一个类,您必须编写自己的函数来将一系列
添加到一起

您可以试试这个,但我不知道它是否会破坏任何东西(尽管我会感到惊讶,因为
+
似乎不用于

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)
在尝试添加任何
点之前,请先添加此项:

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)

这可能行得通,但我还没有测试它。如果它行得通,那么您也可以重新定义其他操作。

假设x坐标从左到右,y坐标从上到下

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)

Point
类来自哪里?它是你自己的类吗?我想这就是你定义坐标的方式?如果我错了,请告诉我@willI刚刚查看了图形库,注意到它是一个类。它没有内置的将点添加到一起的功能。对,谢谢你让我知道。你看到了吗你有什么想法吗@will@will
graphics
的作者有点严格,但实际上你不能添加两点,而是添加向量。另一方面(我无法验证,因为
graphics
是微软的东西,不是吗?)
Point
可能有方法来完成OP需要做的事情。我喜欢向类(+1)添加行为的复习,如果我能告诉OP一些事情:“你应该赶快接受will的答案”.然而,我的印象是,省略add方法应该被视为一种设计选择。但我愿意改变我的想法…。包中没有提到任何内容,它似乎更像是一个非常简单的包。在我看来,添加一种在长度为2的数组/元组之间转换的方法可能也很方便。