我需要将我正在制作的圆的半径设置为先前制作的直线长度的1/4
win = GraphWin("Interactive Drawing",300,300)
win.setCoords(0,0,300,300)
##Create instruction to click the corners of the rectangle
instruction1 = Text(Point(104,10), "Click for lower left of rectangle")
instruction1.draw(win)
lowerLeft = win.getMouse()
instruction1.undraw()
instruction2 = Text(Point(100,10), "Click upper right of rectangle")
instruction2.draw(win)
upperRight = win.getMouse()
instruction2.undraw()
##Draw 2 triangles to form a multicolor rectangle from given points
rightX = upperRight.getX()
rightY = upperRight.getY()
leftX = lowerLeft.getX()
leftY = lowerLeft.getY()
leftZ = rightY - leftY
leftB = leftY + leftZ
rightZ = rightY - leftZ
point1 = Point(leftX,leftY)
point2 = Point(leftX,leftB)
point3 = Point(rightX,rightY)
point4 = Point(rightX,rightZ)
leftTriangle = Polygon(point1,point2,point3)
leftTriangle.draw(win)
leftTriangle.setFill("Purple")
rightTriangle = Polygon(point1,point3,point4)
rightTriangle.draw(win)
rightTriangle.setFill("Green")
##Get Circle point from mouse and draw 4 from point
color = Entry(Point(90,30),19)
color.setText("Enter Color Name Here")
color.draw(win)
instruction3 = Text(Point(114,10), "Click location after entering color")
instruction3.draw(win)
circleClick = win.getMouse()
instruction3.undraw()
circleX = circleClick.getX
circleY = circleClick.getY
circleCenter = Point(circleX,circleY)
radius = ((rightY - leftY)/4)
circle1 = Circle(circleCenter, radius)
circle1.draw(win)
circle2 = Circle(300 - circleClick.getX, 300 - circleClick.getY,radius)
circle2.draw(win)
当我运行该程序时,我能够制作矩形,但是当要求鼠标点击点作为圆的中心并试图绘制它时,我得到了错误
File "C:/Users/Ian/Documents/Python Projects/InputDrawing.py", line 68, in main
circle1 = Circle(circleCenter, radius)
File "C:\Users\Ian\AppData\Local\Programs\Python\Python35-32\lib\graphics.py", line 599, in __init__
p1 = Point(center.x-radius, center.y-radius)
TypeError: unsupported operand type(s) for -: 'method' and 'float'
我不知道如何将它们转换成可以一起分割得到圆半径的东西。有什么帮助吗(如果这有意义的话(哈哈)
在整个代码中有几次使用
.getX
或.getY
。这意味着您得到的是函数getX
和getY
,而不是值x
和y
要解决此问题,请使用()调用函数
当前导致错误的原因是以下几行:
切换到:
您还需要更改行:
致:
这一行目前不会给您带来问题,但一旦您修复了第一个bug,它就会出现
相关问题 更多 >
编程相关推荐