Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

รูปแบบฟิลโลแท็กซิส (Phyllotaxis) ใน Python

รูปแบบฟิลโลแท็กซิส คืออะไร?

ฟิลโลแท็กซิส (Phyllotaxis) หมายถึงการจัดเรียงของดอกไม้ ใบหรือเมล็ดพันธุ์บนก้านพืช ซึ่งมีรูปแบบคล้ายกับสปิรัลฟิบอนัชชี (Fibonacci spiral) ที่พบในลำดับฟิบอนัชชี: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... โดยแต่ละตัวเลขเป็นผลรวมของสองตัวเลขก่อนหน้า

สปิรัลฟิบอนัชชี

เรามักมองหาความสมมาตรและรูปแบบเพื่อทำความเข้าใจสิ่งรอบตัว แม้เราจะไม่รู้สึก ตาเราก็เห็นลำดับฟิบอนัชชีอยู่เสมอ เช่น หัวทานตะวันที่มีเมล็ดจัดเรียงเป็นสปิรัลฟิบอนัชชี

โค้ดตัวอย่าง: วาดรูปแบบฟิลโลแท็กซิสด้วย Turtle

import math
import turtle

def PhyllotacticPattern(t, petalstart, angle=137.508, size=2, cspread=4):
    """วาดรูปแบบวงกลมโดยใช้ข้อมูลสปิรัลฟิลโลแท็กติก"""
    # ตั้งค่าเพน
    turtle.pen(outline=1, pencolor="black", fillcolor="orange")
    
    phi = angle * (math.pi / 180.0)  # แปลงองศาเป็นเรเดียน
    xcenter = 0.0
    ycenter = 0.0
    
    for n in range(0, t):
        r = cspread * math.sqrt(n)
        theta = n * phi
        x = r * math.cos(theta) + xcenter
        y = r * math.sin(theta) + ycenter
        
        # ย้ายเต่าไปตำแหน่งและวาด
        turtle.up()
        turtle.setpos(x, y)
        turtle.down()
        
        # หมุนเต่าให้ถูกต้อง
        turtle.setheading(n * angle)
        
        if n > petalstart - 1:
            drawPetal(x, y)
        else:
            turtle.stamp()

def drawPetal(x, y):
    turtle.up()
    turtle.setpos(x, y)
    turtle.down()
    turtle.begin_fill()
    turtle.pen(outline=1, pencolor="black", fillcolor="yellow")
    turtle.right(25)
    turtle.forward(100)
    turtle.left(45)
    turtle.forward(100)
    turtle.left(140)
    turtle.forward(100)
    turtle.left(45)
    turtle.forward(100)
    turtle.up()
    turtle.end_fill()

# ตั้งค่าและรัน
turtle.shape("turtle")
turtle.speed(0)  # เร็วที่สุด
PhyllotacticPattern(200, 160, 137.508, 4, 10)
turtle.exitonclick()  # คลิกเพื่อปิดหน้าต่าง

การปรับแต่งรูปแบบ

ด้วยการเปลี่ยนสี ขนาด หรือพารามิเตอร์ต่างๆ จะได้รูปแบบที่หลากหลายและสวยงามขึ้น เช่น การใช้สีที่แตกต่างกันสำหรับกลีบดอกไม้และเมล็ดพันธุ์

รูปแบบฟิลโลแท็กซิสไม่ได้มีอยู่แค่ในธรรมชาติเท่านั้น แต่ยังเป็นแรงบันดาลใจให้ศิลปิน นักออกแบบ และนักคณิตศาสตร์ในการสร้างงานที่สวยงามและมีโครงสร้างที่น่าสนใจ