Gosper egri chizig'i - Gosper curve

The Gosper egri chizig'i, shuningdek, nomi bilan tanilgan Peano-Gosper egri chizig'i,[1] nomi bilan nomlangan Bill Gosper, deb ham tanilgan oqar ilon (a qoshiqchilik ning qor parchasi ), a bo'shliqni to'ldiradigan egri chiziq uning chegarasi o'rnatilgan vakili -7. Bu fraktal egri qurilishiga o'xshash ajdar egri va Hilbert egri chizig'i.

Gosper egri chizig'idan samarali ierarxik olti burchakli klasterlash va indekslash uchun ham foydalanish mumkin.[2]

Algoritm

Lindenmayer tizimi

Gosper egri chizig'ini L tizimi quyidagi qoidalar bilan:

  • Burchak: 60 °
  • Aksioma:
  • O'zgartirish qoidalari:

Bu holda A va B ham oldinga siljishni anglatadi, + chapga 60 gradusga burilishni anglatadi va - o'ngga 60 darajaga burilishni anglatadi - masalan, "toshbaqa" uslubidagi dastur yordamida. Logotip.

A Logotip yordamida Gosper egri chizig'ini chizish dasturi toshbaqa grafikasi (onlayn versiyasi ):

ga rg :st :ln qilish "st: st - 1 qilish "ln: ln / sqrt 7 agar :st > 0 [rg :st :ln rt 60 gl :st :ln  rt 120 gl :st :ln lt 60 rg :st :ln lt 120 rg :st :ln rg :st :ln lt 60 gl :st :ln rt 60] agar :st = 0 [fd :ln rt 60 fd :ln rt 120 fd :ln lt 60 fd :ln lt 120 fd :ln fd :ln lt 60 fd :ln rt 60]oxiri ga gl :st :ln qilish "st: st - 1 qilish "ln: ln / sqrt 7 agar :st > 0 [lt 60 rg :st :ln rt 60 gl :st :ln gl :st :ln rt 120 gl :st :ln rt 60 rg :st :ln lt 120 rg :st :ln lt 60 gl :st :ln] agar :st = 0 [lt 60 fd :ln rt 60 fd :ln fd :ln rt 120 fd :ln rt 60 fd :ln lt 120 fd :ln lt 60 fd :ln]oxiri

Dasturni, masalan, bilan chaqirish mumkin rg 4 300yoki muqobil ravishda gl 4 300.

Python

A Python Yuqoridagi L-System qoidalaridan foydalanadigan dastur, toshbaqa grafikalari yordamida Gosper egri chizig'ini chizish uchun (onlayn versiyasi ):

Import toshbaqadef gosper_curve(buyurtma: int, hajmi: int, is_A: bool = To'g'ri) -> Yo'q:    "" "Gosper egri chizilgan." ""    agar buyurtma == 0:        toshbaqa.oldinga(hajmi)        qaytish    uchun op yilda "A-B - B + A ++ AA + B-" agar is_A boshqa "+ A-BB - B-A ++ A + B":        gosper_op_map[op](buyurtma - 1, hajmi)gosper_op_map = {    "A": lambda o, hajmi: gosper_curve(o, hajmi, To'g'ri),    "B": lambda o, hajmi: gosper_curve(o, hajmi, Yolg'on),    "-": lambda o, hajmi: toshbaqa.to'g'ri(60),    "+": lambda o, hajmi: toshbaqa.chap(60),}hajmi = 10buyurtma = 3gosper_curve(buyurtma, hajmi)

Xususiyatlari

Egri chiziq bilan to'ldirilgan bo'shliq Gosper oroli. Uning dastlabki bir necha takrorlanishi quyida keltirilgan:

Gosper oroli 0.svgGosper Island 1.svgGosper oroli 2.svgGosper oroli 3.svgGosper oroli 4.svg

Gosper oroli mumkin kafel The samolyot. Darhaqiqat, Gosper orolining etti nusxasi birlashtirilib, shakl hosil qilishi mumkin o'xshash, lekin koeffitsienti kattalashgan 7 barcha o'lchamlarda. Quyidagi diagrammadan ko'rinib turibdiki, ushbu operatsiyani orolning oraliq takrorlanishi bilan bajarish keyingi takrorlanishning kattalashtirilgan versiyasiga olib keladi. Ushbu jarayonni cheksiz takrorlash natijasida a hosil bo'ladi tessellation samolyot. Egri chiziq ham butun tekislikni to'ldiruvchi cheksiz egri chiziqqa qadar kengaytirilishi mumkin.

Gosper Island Tesselation 2.svgGosper Island Tesselation.svg

Shuningdek qarang

Adabiyotlar

  1. ^ Vayshteyn, Erik V. "Peano-Gosper egri chizig'i". MathWorld. Olingan 31 oktyabr 2013.
  2. ^ "Ierarxik olti burchakli klasterlash va indekslash", 2019 yil, https://doi.org/10.3390/sym11060731

Tashqi havolalar