这个python代码绘制了一个sierpinski三角形。它首先绘制主三角形,然后绘制一堆较小的字符
import turtle
def drawTriangle(points,color,myTurtle):
myTurtle.fillcolor(color)
myTurtle.up()
myTurtle.goto(points[0][0],points[0][1])
myTurtle.down()
myTurtle.begin_fill()
myTurtle.goto(points[1][0],points[1][1])
myTurtle.goto(points[2][0],points[2][1])
myTurtle.goto(points[0][0],points[0][1])
myTurtle.end_fill()
def getMid(p1,p2):
return ( (p1[0]+p2[0]) / 2, (p1[1] + p2[1]) / 2)
def sierpinski(points,degree,myTurtle):
colormap = ['red','turquoise','green','purple','Antique White 4',
'white','black']
drawTriangle(points,colormap[degree],myTurtle)
if degree > 0:
sierpinski([points[0],
getMid(points[0], points[1]),
getMid(points[0], points[2])],
degree-1, myTurtle)
sierpinski([points[1],
getMid(points[0], points[1]),
getMid(points[1], points[2])],
degree-1, myTurtle)
sierpinski([points[2],
getMid(points[2], points[1]),
getMid(points[0], points[2])],
degree-1, myTurtle)
def main():
myTurtle = turtle.Turtle()
myWin = turtle.Screen()
myPoints = [[-100,-50],[0,100],[100,-50]]
sierpinski(myPoints,3,myTurtle)
myWin.exitonclick()
main()
我想做的是修改我的代码,使整个三角形变大。我只是不知道我要改变什么才能改变尺寸。你知道吗
在
main
方法中,您需要更改myPoints
的值。这个列表列表作为第二个参数传递给sierpinski()
。例如,如下所示定义myPoints
会使三角形的大小增加到代码中的两倍:myPoints
列表中的三个列表中的每一个都表示三角形的任何给定点到屏幕中心的距离。对于上述myPoints
,三角形的点绘制如下:如果需要,您还可以修改它,使三角形不再是等边的-您可以用
[[-200, -50], [0, 250], [200, -50]]
创建等边三角形,或者用[[-200, -50], [0, 50], [150, -50]]
创建不等边三角形。尝试加载不同的值,看看会发生什么!你知道吗在main()方法中尝试myPoints变量。设置为
也许换成
或者类似的东西。我没有运行它,但我很确定这些值决定了三角形的大小。你知道吗
相关问题 更多 >
编程相关推荐