大神公布的图片:
下面是我用turtle画出来的,由于懒,外层的八个顶点,没有dot。
好了,废话不多说,直接上代码,思路来源于观察。
import turtle
turtle.up()
turtle.goto(100, 0)
turtle.pencolor('pink')
turtle.begin_poly()
for i in range(8):
turtle.down()
turtle.left(135)
turtle.forward(200)
turtle.end_poly()
dd = turtle.get_poly()
print(dd) #打印的目的是为了将获取到的顶点按逆时针方向排序
dd = [(-100.00, 0.00), (-41.42, -58.58), (41.42, -58.58), (100.00, -0.00), (100.00, 82.84),
(41.42, 141.42), (-41.42, 141.42), (-100.00, 82.84)] #按逆时针方向旋转排序,代码中唯一手动操作过的地方。
turtle.speed(1)
count = 0
for i in dd:
turtle.goto(i)
turtle.dot(10, 'blue')
turtle.write(turtle.pos())
turtle.pencolor('green')
turtle.down()
turtle.right(45 + count*45) #通过多次试验长时间观察,就看到它是按这个规律旋转的。
turtle.forward(-200)
turtle.right(45)
turtle.forward(200)
turtle.left(45)
turtle.forward(200)
turtle.left(135)
turtle.forward(200)
turtle.up()
count = 1
turtle.done()