Граматики за
                генеративно изкуство

●   Шарка на Труше

●   L – системи

    ●   Идея

    ●   Описание

  ...
Шарка на Труше
●   Себастиен Труше е френски монах от Доминиканския
    орден, живял през 17/18в.
●   Известен с постижени...
Разновидности
●   При замяна на шартката с други основни
    форми се получават интересни резултати:
Разновидности...
?
От галерията на Contexfree.org




                        Eco by Aihle
        http://www.contextfreeart.org/gallery/view...
От галерията на Context Free
startshape D
 
rule D
{
  C {r 15}
  C {r 45}
}
rule C
{
  B {}
  B {f -90}
}
 
rule B
{
  A ...
Линдемаер системи
●   Разработени от биолога Аристид Линденмаер
●   Пъвоначално създадени за моделиране растежа
    на вод...
L-Systems
●   Описват се от множеството:

                                        G = (V, ω , Σ)

●   ...където
    ●   V ...
L-System vs. CFDG
●   L-systems се описват с граматики от по-общ вид, докато
    CFDG граматиките са контекстно свободни.
...
Пример – Cantor Dust
   ●   Променливи : A B                  ( Порядък ) Резултат
       ●   А - рисувай и се движи
     ...
Крива на Кох
●   Променлива(и) : F         n = 0:

●   Константи : + −           F

    ●   + e ротация на 90'
           ...
Формално описание на L-Systems
●   Описва се движението на 'костенурката' в N- мерно пространство (най-често
    2D).
    ...
Формално описание на L-Systems
Angle={COUNT}          : задаване на ъгъла използван от '+' and '-' да е
                  ...
Формално описание на L-System

!    : инвертиране смисъла на +, - и  и /
 @{SCALE} : скалиране на дадената линия {SCALE} п...
Крива на КОХ като L-system
Koch1 {
; адаптация на Adrian Mariano
; от книгата The Fractal Geometry of Nature
; от Беноа Ма...
Модели на растения


   аксиома: F 
   правило: F -> F[-F]F[+F][F]

                                 1     2        3     ...
Някои популярни криви
                 представени с L-Systems
                                                           ...
Dragon Curve
                                      3
             1            2




                      4
X -> X+YF+
Y ...
Визуализация на L-Systems
●   С Context Free е по-сложно
    ●   Няма възможност за извод при разписване на пътища
    ●  ...
Библиография
●   http://mathworld.wolfram.com/TruchetTiling.html - шарка на Труше

●   http://www.biologie.uni-hamburg.de/...
Софтуер за L-Systems

●   http://www.javaview.de/vgp/tutor/lsystem/PaLSystem.html - прост аплет за
    експерименти с L-Sy...
Upcoming SlideShare
Loading in …5
×

Grammars for Generative Art - Lectures @ Sofia University #6

1,725 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,725
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
27
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Grammars for Generative Art - Lectures @ Sofia University #6

  1. 1. Граматики за генеративно изкуство ● Шарка на Труше ● L – системи ● Идея ● Описание ● Демонстрации ● Софтуер Подготвени от Г.Пенков като част от курса на ФМИ за зимен семестър 2010/2011. Заглавното изображение адаптирано от оригиналната граматика от http://contextfree.lazymoon.org.
  2. 2. Шарка на Труше ● Себастиен Труше е френски монах от Доминиканския орден, живял през 17/18в. ● Известен с постиженията си в областта на хидравликата, графиката, математиката и типографията ● През 1704 разглежда всички възможни форми, които се получават от подредбата на правоъгълни триъгълници разположени в четерите края на квадрат.
  3. 3. Разновидности ● При замяна на шартката с други основни форми се получават интересни резултати:
  4. 4. Разновидности...
  5. 5. ?
  6. 6. От галерията на Contexfree.org Eco by Aihle http://www.contextfreeart.org/gallery/view.php?id=1937
  7. 7. От галерията на Context Free startshape D   rule D { C {r 15} C {r 45} } rule C { B {} B {f -90} }   rule B { A {} A {r 60} A { r 120 } A { r 180 } A { r 240 } A { r 300 } }   rule A { CIRCLE {s 1 .0006} A {x .9 r 120.21 s .99 b .0005 } } Star by Latex http://www.contextfreeart.org/gallery/view.php?id=45
  8. 8. Линдемаер системи ● Разработени от биолога Аристид Линденмаер ● Пъвоначално създадени за моделиране растежа на водорасли и други растения ● Използвали са се за илюстриране отношенията м/у съседните клетки ● В последствие се превръщат в стандартен метод за описание на сложни структури с разклонения ● Рекурсивната натура на L-system ги прави подходящи за описание на фрактали ● Намират разнообразно приложение при създаването на генеративни структури
  9. 9. L-Systems ● Описват се от множеството: G = (V, ω , Σ) ● ...където ● V е множество от символи, всеки от който може да има извод (да бъде разписан в друг) ● ω е аксиома ● Σ – множество от правила за извод ● Нарича се още Semi-Thue граматика, еквивалент на граматика от Тип 0 (общ тип) ● Обикновено се смята, че са от някакъв порядък ● Разликата с другите граматики от формализма на Чомски е, че на всяка итерация се прилагат всички възможни правила и така се поражда следващия порядък. Т.е. Заместват се всички символи едновременно. ● Сама по себе си разписаната дума е символен низ, графичният смисъл се придава в последствие.
  10. 10. L-System vs. CFDG ● L-systems се описват с граматики от по-общ вид, докато CFDG граматиките са контекстно свободни. ● Продуктът от Линдемаер системите е първо символен (едномерен), а в последствие придобива многомерен смисъл. ● Преди да е генериран символния низ, резултат от прилагането на L-system не може да за почне реалното изграждане на структурата ● Пространството, в което се развиват L-Systems е двуизмерна или триизмерна координатна система. ● За разлика от CFDG няма трансформационно пространство за всеки извод
  11. 11. Пример – Cantor Dust ● Променливи : A B ( Порядък ) Резултат ● А - рисувай и се движи (1) А ● B - движи се без да рисуваш (2) ABA ● Аксиома : A (3) ABABBBABA ● Правила (4) ABABBBABABBBBBBBBBABABBBABA ● (A → ABA) ● (B → BBB) 1... 2... 3... 4... 5... 6... 7...
  12. 12. Крива на Кох ● Променлива(и) : F n = 0: ● Константи : + − F ● + e ротация на 90' n = 1: ● - е ротация на -90' F+F-F-F+F n = 2: ● Аксиома : F F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F- означава движение и F+F рисуване напред с единица разстояние n = 3: ● Правило за извод : F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F-F+F+F+F-F- F+F+ F+F-F-F+F+F+F-F-F+F-F+F-F-F+F-F+F-F- (F → F+F−F−F+F) F+F+F+F-F-F+F- F+F-F-F+F+F+F-F-F+F-F+F-F-F+F- F+F-F-F+F+F+F-F-F+F- F+F-F-F+F+F+F-F-F+F-F+F-F- F+F-F+F-F-F+F+F+F-F-F+F+ F+F-F-F+F+F+F-F-F+F- F+F-F-F+F-F+F-F-F+F+F+F-F-F+F
  13. 13. Формално описание на L-Systems ● Описва се движението на 'костенурката' в N- мерно пространство (най-често 2D). ● Например в двумерно пространство състоянието на костенурката се определя от тройката (x, y, a), където (x, y) са Картезиеви координати, а (a) е текущата ориентация ● Придава се конкретен смисъл на някои символи, които се разписват по- късно от L-System ● Задават се константи, напимер определящи стандартен ъгъл на завъртане, дължина на изрисуваната отсечка и т.н. ● В зависимост от вида на системата може да бъде въведен и символ за запазване на текущaта позиция на 'костенурката' и съответно с възможност за последващо възстановяване. ● Това позволява разписване на разклонения ● Крайният резултат ще може да има и множество “вложени” състияния ● Правилата за извод в L-Systems могат да бъдат и със стохастичен характер ● Позволява герериране на серии от подобни резултати ● Въвеждат елемент на случайност в един и същ резултат
  14. 14. Формално описание на L-Systems Angle={COUNT} : задаване на ъгъла използван от '+' and '-' да е равен на 360 / {COUNT} градуса Axiom {COMMANDS} : начално множество от команди {COMMANDS} {COUNT}+ : завой вляво {COUNT} пъти. Ако {COUNT} липсва - 1 {COUNT}- : завой вдясно {COUNT} пъти. Ако {COUNT} липсва - 1 | : завой на 180 градуса или на най-големия възможен завой по-малък от 180 градуса f, d : рисуване на линия използвйаки текущата посока и дължина g, m : движение напред вместо рисуване {ANGLE} : завой вляво на {ANGLE} градуса / {ANGLE} : завой вдясно на {ANGLE} градуса [ : запазване на състоянието (позиция, ъгъл, размер и т.н.) ] : възстановяване на състоянието
  15. 15. Формално описание на L-System ! : инвертиране смисъла на +, - и и / @{SCALE} : скалиране на дадената линия {SCALE} пъти @q{SCALE} : саклиране на степен квадратен корен от {SCALE} @I{SCALE} : скалиране с 1 / {SCALE} c{INDEX} : задаване на цветови индекс {INDEX} <{COUNT} : увеличаване на цветовия индекс с {COUNT} >{COUNT} : намаляване на цветовия индекс с {COUNT} {LETTER}={COMMANDS} : асоцииране на {COMMANDS} със символа {LETTER}
  16. 16. Крива на КОХ като L-system Koch1 { ; адаптация на Adrian Mariano ; от книгата The Fractal Geometry of Nature ; от Беноа Маделброт Angle 6 Axiom F--F--F F = F+F--F+F } последователни генерации
  17. 17. Модели на растения   аксиома: F    правило: F -> F[-F]F[+F][F] 1 2 3 4 5 Bush { ; Adrian Mariano Weed { Angle 16 Angle 50 Axiom ++++F Axiom +++++++++++++x F=FF-[-F+F+F]+[+F-F-F] x=f[@.5+++++++++x]-f[@.4-----------!x]@.6x } }
  18. 18. Някои популярни криви представени с L-Systems Hilbert curve 32-segment curve F -> -F+F-F-F+F+FF-F+F+FF+F-F-FF+FF-FF+F+F-FF-F-F+FF-F-F+F+F-F+ L -> +RF-LFL-FR+, R -> -LF+RFR+FL- Peano-Gosper curve Square curve X -> X+YF++YF-FX—FXFX-YF+ Y -> -FX+YFYF++YF+FX—FX-Y 60° X -> XF-F+F-XF+F+XF-F+F-X
  19. 19. Dragon Curve 3 1 2 4 X -> X+YF+ Y -> -FX-Y 5 6 8 7 9
  20. 20. Визуализация на L-Systems ● С Context Free е по-сложно ● Няма възможност за извод при разписване на пътища ● Изрисуването става на всяка итерация на разписване на правила, а не само в последния порядък ● Със Structure Synth е възможно, защото има механизъм за ограничаване дълбочината на извода ● С помоща на FractInt ● С помоща на Fractal Science Kit ● Описаната система е типична за Fractal Science Kit ● Общоприет запис, който се използва и от други софтуерни пакети ● Ръчно – с наш собствен скрипт
  21. 21. Библиография ● http://mathworld.wolfram.com/TruchetTiling.html - шарка на Труше ● http://www.biologie.uni-hamburg.de/b-online/e28_3/lsys.html - Обща информация за L-Systems ● en.wikipedia.org/wiki/L-system – още едно въведение за L-Systems ● http://www.nahee.com/spanky/www/fractint/lsys/tutor.html - мощното ръководство за L-Systems с множество примери ● http://algorithmicbotany.org/ - Визуални модели за морфогенезис
  22. 22. Софтуер за L-Systems ● http://www.javaview.de/vgp/tutor/lsystem/PaLSystem.html - прост аплет за експерименти с L-Systems (Java) ● http://web.mit.edu/~eric_r/Public/lsystems/ - прост аплет за бързо моделиране на 3D L-Systems (Java/Processing) ● http://mathworld.wolfram.com/LindenmayerSystem.html - Детайли за някои популярни L-Systems ● http://www.generation5.org/content/2002/lse.asp - просто приложение за изследване на L-Systems ● http://www.fractalsciencekit.com/ - Fractal Science Kit ● http://www.nahee.com/spanky/www/fractint/fractint.html - официален сайт на FractInt. Текуща версия 20.0

×