所以我在做一个螺旋描记器,首先把它自己画成12个三角形,现在我想画一个圆沿着它的边(我希望这是有意义的)这是它现在的代码
from graphics import *
from math import *
def ar(a):
return a*3.141592654/180
def spiral(x0,y0,win):
startangle = 60
stepangle = 120
radius = 50
p1 = Point(x0 + radius * cos(ar(startangle)), y0 + radius * sin(ar(startangle)))
for step in range(12):
startangle += 30
for i in range((stepangle+startangle),(360+stepangle+startangle),stepangle):
p2 = Point(x0 + radius * cos(ar(i)), y0 + radius * sin(ar(i)))
Line(p1,p2).draw(win)
p1 = p2
def doublespiral():
win = GraphWin("stuff",800,800)
x1 = 400
y1 = 400
radius1 = 100
startangle1 = 60
stepangle1 = 120
p1 = Point(x1 + radius1 * cos(ar(startangle1)), y1 + radius1 * sin(ar(startangle1)))
for steps in range(12):
startangle1 += 30
for i in range((stepangle1+startangle1),(360+stepangle1+startangle1), stepangle1):
p2 = Point(x1 + radius1 * cos(ar(i)), y1 + radius1 * sin(ar(i)))
spiral(p1,p2,win)
input("<ENTER> to quit...")
win.close()
def main():
doublespiral()
main()
下面是它给我的全部错误
in spiral(x0, y0, win)
14 stepangle = 120
15 radius = 50
16 <---- p1 = Point(x0 + radius * cos(ar(startangle)), y0 + radius * sin(ar(startangle)))
17 for step in range(12):
18 startangle += 30
TypeError: unsupported operand type(s) for +: 'instance' and 'float'
但当我运行所说的代码时,我不断得到这个错误“ TypeError:不支持+:'instance'和'float'的操作数类型“有人能告诉我错误是什么,以便我了解如何在将来的代码中修复/避免它,以及如何修复它吗?你知道吗
我在这里猜测一下,因为您还没有发布跟踪,但可能是因为以下几行:
如果
p1
是Point
类型,您将它传递给spiral,在那里它是x0
,然后像这里一样添加它们将失败,因为无法将
instance
(x0
)添加到float
(radius
)。你知道吗相关问题 更多 >
编程相关推荐