L-SYSTEM 을 활용한 프랙탈

L-시스템을 이용해서 여러가지 멋진 프랙탈을 그려보도록 하자. 다음과 같이 변환 규칙, 공리 를 말하면 그에 맞게 코드로 설정하면 된다.

변 환 : F -> F+F--F+F
공 리 : F

lsystem.AddTransRule('F', "F+F--F+F");
lsystem.MakeAxiom("F");

이 강좌에서는 따로 실행파일은 제공하지 않고 실행 결과의 그림과 변환 규칙, 공리만을 적는다.

코호섬

변환

F -> F-F+F+FF-F-F+F

공리

F-F-F-F

각도

90 도

코드

시어핀스키 사각형

변환

F -> FF-F-F-F-FF

공리

F-F-F-F

각도

90 도

코드

시어핀스키 가스켓

변환

F -> FF

변환

X -> ++FXF--FXF--FXF++

공리

FXF++FF++FF

각도

60 도

코드

힐버트 곡선

변환

F -> F

변환

X -> +YF-XFX-FY+

변환

Y -> -XF+YFY+FX-

공리

X

각도

90 도

코드

나무

변환

F -> FF+[+F-F-F]-[-F+F+F]

공리

F

각도

30 도

코드

열매를 맺는 나무

변환

F -> FF+[+F-F-F@]-[-F+F+F@]

공리

F

각도

30 도

코드

드래곤 곡선

변환

F -> F

변환

X -> X-YF-

변환

Y -> +FX+Y

공리

X

각도

90 도

코드

네모 곡선

변환

F -> FF-F-F-F-F-F+F

공리

F-F-F-F-

각도

90 도

코드

무궁화

변환

F -> F++F++F

F-F++F

공리

F++F++F++F++F

각도

36 도

코드

나무

변환

F -> F[+F[+F][-F]F][-F[+F][-F]F]F[+F][-F]F

공리

F

각도

30 도

코드

시어핀스키 곡선

변환

F -> F

변환

X -> YF+XF+Y

변환

Y -> XF-YF-X

공리

YF

각도

60 도

코드

시어핀스키 삼각형

변환

F -> FXF

변환

X -> +FXF-FXF-FXF+

공리

XF

각도

120 도

코드

눈송이

변환

F -> "" 아무런 문자로도 전재하지 않음

변환

L -> FL-FR--FR+FL++FLFL+FR-

변환

R -> +FL-FRFR--FR-FL++FL+FR

공리

FL

각도

60 도

코드

페아노 곡선

변환

F -> F

변환

X -> XFYFX-F-YFXFY+F+XFYFX

변환

Y -> YFXFY+F+XFYFX-F-YFXFY

공리

X

각도

90 도

코드

갈대

변환

F -> FF+[F+FF-F]-[+F+F-F]

공리

F

각도

26 도

코드

나무

변환

F -> FF+[+F-F-F]-[-FFF]

공리

F

각도

26 도

선인장

변환

F -> F

변환

S -> [++G][--G]TTS

변환

G -> +H[-G]L

변환

H -> -G[+HF]FL

변환

T -> TL

변환

L -> [-FFF][+FFF]F

공리

SLFFF

각도

18 도

코드

이곳에서 설명한 L-시스템 이외에도 자신이 L-시스템을 만들어 볼 수 있다. L-시스템의 모형을 만들고 이에 대한 공리, 변환, 각도를 정해주면 된다. 자신이 설계한 L-시스템이 원하는 그림을 화면에 뿌려낼 때에는 한동안 무아지경에서 빠져 나오지 못할 것이다. ;] - 끝 -

Last updated

Was this helpful?