Skip to content
الگوریتم‌های دیگر

فراکتال‌ها

خودتشابهی بازگشتی — زیبایی در بی‌نهایت

دانه برف 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))