필로택시 패턴이란 무엇입니까?
다시 돌아가서 식물학 수업과 식물 세계에서 phyllotaxis는 피보나치 나선에서 발견되는 것과 유사한 식물 줄기에 꽃, 잎 또는 씨앗의 배열을 의미합니다. 피보나치 수열을 기반으로 하는 피보나치 나선은 파스칼의 삼각형과 유사한 패턴을 따르는 숫자 집합입니다. 피보나치 수열 번호는 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144 등입니다. 따라서 피보나치 수열 번호는 이전 수의 합입니다.
피보나치 나선
우리는 일반적으로 주변 사물을 이해하기 위해 대칭과 패턴을 찾습니다. 우리의 눈은 자신도 모르게 피보나치 수열을 보고 있으며, 해바라기 머리의 경우에는 피보나치 나선을 보고 있습니다.
해결책
해바라기 나선
예시 코드
import math import turtle def PhyllotacticPattern( t, petalstart, angle = 137.508, size = 2, cspread = 4 ): """print a pattern of circles using spiral phyllotactic data""" # initialize position turtle.pen(outline=1,pencolor="black",fillcolor="orange") # turtle.color("orange") phi = angle * ( math.pi / 180.0 ) xcenter = 0.0 ycenter = 0.0 # for loops iterate in this case from the first value until < 4, so 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 # move the turtle to that position and draw turtle.up() turtle.setpos(x,y) turtle.down() # orient the turtle correctly turtle.setheading(n * angle) if n > petalstart-1: #turtle.color("yellow") drawPetal(x,y) else: turtle.stamp() def drawPetal( x, y ): turtle.up() turtle.setpos(x,y) turtle.down() turtle.begin_fill() #turtle.fill(True) 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() # this is needed to complete the last petal turtle.shape("turtle") turtle.speed(0) # make the turtle go as fast as possible PhyllotacticPattern( 200, 160, 137.508, 4, 10 ) turtle.exitonclick() # lets you x out of the window when outside of idle
해결책
위의 프로그램을 약간 변경하면 결과가 다음과 같이 바뀔 수 있습니다(사용자 지정 색상 제공 및 일부 값 변경).