如何在python中添加坐标?
因此,我尝试创建一个函数,让用户输入矩形的长度和宽度,然后让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
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@willgraphics
的作者有点严格,但实际上你不能添加两点,而是添加向量。另一方面(我无法验证,因为graphics
是微软的东西,不是吗?)Point
可能有方法来完成OP需要做的事情。我喜欢向类(+1)添加行为的复习,如果我能告诉OP一些事情:“你应该赶快接受will的答案”.然而,我的印象是,省略add方法应该被视为一种设计选择。但我愿意改变我的想法…。包中没有提到任何内容,它似乎更像是一个非常简单的包。在我看来,添加一种在长度为2的数组/元组之间转换的方法可能也很方便。