我尝试在Python中创建一个三角形细分,如下所示:
我得到的只是西格宾斯基三角形。我想它会使用一些相同的代码。你知道吗
import turtle as t
import math
import colorsys
t.hideturtle()
t.speed(0)
t.tracer(0,0)
h = 0
def draw_tri(x,y,size):
global h
t.up()
t.goto(x,y)
t.seth(0)
t.down()
color = colorsys.hsv_to_rgb(h,1,1)
h += 0.1
t.color(color)
t.left(120)
t.fd(size)
t.left(120)
t.fd(size)
t.end_fill()
def draw_s(x,y,size,n):
if n == 0:
draw_tri(x,y,size)
return
draw_s(x,y,size/2,n-1)
draw_s(x+size/2,y,size/2,n-1)
draw_s(x+size/4,y+size*math.sqrt(3)/4,size/2,n-1)
draw_s(-300,-250,600,6)
t.update()
正如@ReblochonMasque所指出的,有多种方法可以解决这个问题。下面是一个我用尽可能少的海龟代码来解决问题的方法:
它可能需要优化,但它完成了任务。看电影很有趣。。。你知道吗
有多种方法;下面的示例在引导
turtle
在画布上绘制线段之前生成所有线段。你知道吗如果要查看平铺的跟踪方式,可以替换以下行:
并用鼠标放大画布屏幕以查看平铺的边界(我使其与窗口的标准大小重叠)
相关问题 更多 >
编程相关推荐