دانه برف Kochdepth = 0
عمق صفر — شکل پایه (مثلث یا خط)
درباره فراکتالها
فراکتالها اشکالی هستند که در هر مقیاسی شبیه خودشان هستند (خودتشابهی). با بازگشت (recursion) ساخته میشوند: یک شکل ساده را بارها به خودش اعمال میکنیم. پیچیدگی بینهایت از قوانین ساده.
✓ خودتشابهی✓ بعد غیرصحیح✓ بازگشتی✓ تقریباً در طبیعت
koch.py
def koch(p1, p2, depth):
if depth == 0:
return [p1, p2]
# ۳ نقطه میانی + نقطه قله
p3 = lerp(p1, p2, 1/3)
p5 = lerp(p1, p2, 2/3)
angle = atan2(p2.y-p1.y, p2.x-p1.x) - pi/3
length = dist(p1,p2) / 3
p4 = p3 + Vec2(cos(angle), sin(angle)) * length
return (koch(p1,p3,d-1) + koch(p3,p4,d-1)
+ koch(p4,p5,d-1) + koch(p5,p2,d-1))