SlideShare a Scribd company logo
1 of 31
Граматики за
генеративно изкуство
● Видове граматики
● Контекстно свободни
граматики
● Дърво на извод
● Context Free
● Примитиви
● Правила
● Едноименни правила
Подготвени от Г.Пенков като част от курса на ФМИ за зимен семестър 2010/2011. Заглавното
изображениe е от http://www.lazymoon.org.
Малко История
● Идеята за формално описание на граматически правила датира
от 400г. пр. Хр и е дело на древния индийски граматик Panini,
който описва правилата на езика Санскрит.
● Това се смята за най-ранния известен пример за дискриптивна
лингвистика, с което се поставя начало на лингвистиката.
● Санскритската граматика е описана с 3,959 правила.
● Идеята е възприета в западния свят едва през 19в. от
германския лингвист Франц Боп
● Кулминира във въведената от Ноа Чомски през
1957 йерархия, която описва четири основни
вида граматики
Видове граматики
нормална граматика
● Нека Г е граматика (N, T, Σ, S)
● Нормална граматика от общ тип (тип 0), в
която всяко правило σ е от вида :
γ1
Aγ2
→ ω
γ1
γ1
∈ (N ∪ T)*
A ∈N
ω ∈ (N ∪ T)+
● Пораждат множеството от езици, които могат
да бъдат разпознати от Тюрингова машина
Видове Граматики
контекстно зависима граматика
● Нека Г е граматика (N, T, Σ, S)
● Контекстно зависима граматика (тип 1), в която всяко
правило σ е от вида :
γ1
Aγ2
→ γ1
ω γ2
γ1
γ1
∈ (N ∪ T)*
A ∈N
ω ∈ (N ∪ T)+
● Почти всички натурални езици могат да бъдат описани с
този тип граматики
● Но този тип граматики пораждат далеч по-обширно
множество от езици
Контекстно зависми език
{an
bn
cn
: n ≥ 1}
● S → aSBC
● S → aBC
● CB → HB
● HB → HC
● HC → BC
● aB → ab
● bB → bb
● bC → bc
● cC → cc
...
Видове граматики
Контекстно свободин граматики
● Нека Г е граматика (N, T, Σ, S)
● От вида :
A → ω
A ∈N
ω ∈ (N ∪ T)+
● В контекстно свободните граматики лявята част на
правилата винаги е нетерминален символ
● Обикновено правилата на този вид граматики се
описват с т.нар Бакус-Наурова Нотация
Пример за BNF запис
<postal-address> ::= <name-part> <street-address> <zip-part>
<name-part> ::= <personal-part> <last-name> <opt-jr-part> <EOL>
| <personal-part> <name-part>
<personal-part> ::= <first-name> | <initial> "."
<street-address> ::= <house-num> <street-name> <opt-apt-num>
<EOL>
<zip-part> ::= <town-name> "," <state-code> <ZIP-code> <EOL>
<opt-jr-part> ::= "Sr." | "Jr." | <roman-numeral> | ""
Нормални форми
● Нормална форма на
Чомски
● Контекстно свободни
граматики с правила от
вида
A → BC or
A → α or
S → ε
● Нормална форма на
Грейбах
● Контекстно свободни
граматики с правила от
вида
A → α X
E → ε
X ⊂ (N  S ) *
Синтактично дърво
Нека е дадена граматика :
Г = [ {S}, {1,a,+}, Σ, S]
с правила
(1) S → S + S
(2) S → 1
(3) S → a
Синтактично Дърво
S
/|
/ | 
/ | 
S '+' S
/| |
/ |  |
S '+' S 'a'
| |
'1' '1'
S → S + S (1)
→ S + S + S (1)
→ 1 + S + S (2)
→ 1 + 1 + S (2)
→ 1 + 1 + a (3)
S
/|
/ | 
/ | 
S '+' S
| /|
| / | 
'1' S '+' S
| |
'1' 'a'
S → S + S (1)
→ 1 + S (2)
→ 1 + S + S (1)
→ 1 + 1 + S (2)
→ 1 + 1 + a (3)
Ляв изводДесен извод
Видове Граматики
Автоматни граматики
● Нека Г е граматика (N, T, Σ, S)
● С правила σ от вида :
A → B
A → aB
A → a
a ∈ N
A, B ∈N
● Автоматните граматики се разпознават от крайни автомати
● Регулярните изрази описват регулярни езици и в този смисъл
имат същата изразна мощ като регулярните граматики
Pushdown автомат
● Pushdown автомат е
краен автомат, който
може да използва стек
съдържащ данни.
● Различава се от КА по
това, че
● може да използва
стека, за да вземе
решение кой преход
да извърши
● може да променя
стека при прехода
Контекстно свободни граматики с
графични символи-терминали
ФОРМАЛЕН
ЕЗИК
ЕСТЕСТВЕН
ЕЗИК
ГРАФИЧЕН
ГЕНЕРАТИВЕН ЕЗИК
букви думи графични примитиви
азбука речник (лексика) графичните примитиви
дума фраза (изречение) генеративна картина
език множеството на
изреченията
всички възможни
генеративни картини
терминали думите графичните символи
нетерминали синтактични термини генеративни правила
аксиома изречение начална форма
правила синтактични правила генеративни правила
граматика синтаксис генеративен дизайн
CFDG
Context Free Design Grammer
● Разработена от Крис Койн
● CFDG позволява описване на множества от недетерминистични
правила за създаване продукция на изображения
● Прост “синтаксис” с ограничен набор от директиви
● Напомня на BNF
● Средата за разработка се казва Context Free (.NET 2)
● Напълно безплатна
● Може да генерира анимации, които проследяват създаването на
изображението (изисква QuickTime)
● CFDG генераторът има версия за Windows, MAC, Linux/Unix
● Може да създаде изображения до 100 мегапиксела
● Възможен изход към SVG
● Anti-aliasing система за графика
● Имплементирана на C++
Context Free
CFDG
Source
Generated Image
Current Random Seed
Графични терминални символи
Окръжност Триъгълник Квадрат
CIRCLE TRIANGLE SQUARE
Разположение спрямо неутрална
трасформационна матрица
Трансформационна матрица
● Всяко едно правило се “разписва” / “изобразява” спрямо дадена
трансформационна матрица.
● При разписване на следващото правило (при извод) може да
бъде породена нова трансформационна матрица.
● Новата трансформационна матрица е изведена от предишната и
по този начин всеки терминален символ е изобразен спрямо
“свое трансформационно пространство”.
● Всяка сложна форма и всяко следващо правило е в ново
трансформационно пространство.
● При генериране на нови форми в картината автоматично се
коригира и изгледа към нея, така че да обхваща всички елементи
● Освен ако експлицитно не е приведена в действие директива
за ограничаване на изгледа към катината
Начално правило и условия
● Началното правило се разписва в
трансформационна матрица със
следните характеристики :
● Размерът по (x,y) е (1,1)
● Положението по оста Z е 0
● Завъртането е на 0 градуса
● Изкривяването е (0', 0')
● Цветът е черен по HSV скалата
● Без отражение
Най-прост CFDG пример
startshape cStart
rule cStart {
CIRCLE {}
}
(0, -1/2)
(0, 1/2)
Заб : пунктирът няма да се изрисува от тази граматика.
Заб : ограждащият квадрат (в пунктир или не) обикновено
обозначава границите на резултатната структура.
● Единствено правило и единствен термнал.
● Реално изпълнима в CFDG
В Context Free
Параметри на графичните
примитиви
● Изписват се във фигурните скоби след графичната
примитива.
● Прилагат се спрямо текущата трансформационна матрица.
● Всяко правило съществува в отделна трансофрмационна
матрица.
●
● При разписване на следващото правило може (и най-
вероятно ще се породи) нова трансформационна матрица
● Параметрите могат да отместят формат както в
координатната система, така и в пространството на цветовете
(H, S, V)
Отместване по осите
startshape cBegin
rule cBegin {
CIRCLE { x 1 }
CIRCLE { x 2 }
CIRCLE { x 3 }
CIRCLE { x 4 }
CIRCLE { x 5 }
}
(0, 1/2) (1, 1/2) (2, 1/2) (2, 1/2)
// Параметрите предизвикват
отместване на координатната
система на примитивата по Х
Отместване
при разписване на правила
startshape cBegin
rule cBegin {
CIRCLE {}
C1 { x 1 }
}
rule C1 {
SQUARE { }
C2 { x 1 }
}
rule C2 {
TRIANGLE { }
}
// Всяко правило рисува по една
форма, която попада в квадрат
със стена 1.
// Всяко правило има извод в
следващото след пренестване на
текущата координатна система
Отместване
при разписване на правила
startshape cBegin
rule cBegin {
CIRCLE {}
CIRCLE {y 1}
CIRCLE {y -1}
CIRCLE {y -2}
CIRCLE {y 2}
C1 {x 1}
}
rule C1 {
SQUARE { }
C2 { x 1 }
}
rule C2 {
TRIANGLE { }
}
cB → cccccD
D → sE
E → t
● Позволяват създаване на т.нар недетерминистични граматики.
● При създаване на структурата се избира едно от едноименните
правила.
● Може да бъде променена вероятността да е падне дадено
правило, като :
● Общата вериятност за всички едноименни правила е n, всяко има
вероятност 1
● Може да се зададе вероятност за дадено правило с число с
плаваща запетая с много голяма точност
● В зависимост от подадения random seed се прави различен избор.
● Може да се преизпълни случайния фактор при подаване на
същия random seed
● Механизъм за създаване на серии от подобни структури
Едноименни правила
Гранични условия
● Вграденият механизъм за ограничаване на безкрайни цикли от правила
безкрайни рекурсии от правила зе задейства, когато :
● Дадена форма стане по-малка от 0.3 от един пиксел
● Когато всички нови правила (останали за разписвнае) са изработени
само от терминални символи
● Няма възможност за задаване на брой рекурсивни нива
● Обичайна практика е да се включи терминално правило
● с празния символ (т.е. празно)
● само с терминални символи
● с значително по-малка вероятност и само с терминални символ
● Рекурсията може да бъде изключена напълно с параметър на
командния ред '-x'
● Може да бъде ограничен броя на генерираните фор с помоща на
параметър на командния ред '-m'
Едноименни правила
startshape B
rule B {
CIRCLE {}
E { x 1 }
}
rule E {
SQUARE { x 1 }
F { y -1 }
}
rule E {
TRIANGLE { x 1 }
F { y +1}
}
rule F .2 {
CIRCLE {}
}
rule F {
B{}
}
B → cE
E → sF
E → tF
F → c
F → B
Стъпка по стъпка...
От галерията на Context Free
http://hxseven.deviantart.com/
Полезни любопитни връзки
● Context Free Art
http://www.contextfreeart.org/
● Quick Time
http://www.apple.com/quicktime/
● Pā ini @ Wikipediaṇ
● http://en.wikipedia.org/wiki/P%C4%81%E1%B9%87ini
● Страница на курса в Moodle на ФМИ
http://moodle.openfmi.net/course/view.php?id=271

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Grammars for Generative Art - Lectures @ Sofia University #1

  • 1. Граматики за генеративно изкуство ● Видове граматики ● Контекстно свободни граматики ● Дърво на извод ● Context Free ● Примитиви ● Правила ● Едноименни правила Подготвени от Г.Пенков като част от курса на ФМИ за зимен семестър 2010/2011. Заглавното изображениe е от http://www.lazymoon.org.
  • 2. Малко История ● Идеята за формално описание на граматически правила датира от 400г. пр. Хр и е дело на древния индийски граматик Panini, който описва правилата на езика Санскрит. ● Това се смята за най-ранния известен пример за дискриптивна лингвистика, с което се поставя начало на лингвистиката. ● Санскритската граматика е описана с 3,959 правила. ● Идеята е възприета в западния свят едва през 19в. от германския лингвист Франц Боп ● Кулминира във въведената от Ноа Чомски през 1957 йерархия, която описва четири основни вида граматики
  • 3. Видове граматики нормална граматика ● Нека Г е граматика (N, T, Σ, S) ● Нормална граматика от общ тип (тип 0), в която всяко правило σ е от вида : γ1 Aγ2 → ω γ1 γ1 ∈ (N ∪ T)* A ∈N ω ∈ (N ∪ T)+ ● Пораждат множеството от езици, които могат да бъдат разпознати от Тюрингова машина
  • 4. Видове Граматики контекстно зависима граматика ● Нека Г е граматика (N, T, Σ, S) ● Контекстно зависима граматика (тип 1), в която всяко правило σ е от вида : γ1 Aγ2 → γ1 ω γ2 γ1 γ1 ∈ (N ∪ T)* A ∈N ω ∈ (N ∪ T)+ ● Почти всички натурални езици могат да бъдат описани с този тип граматики ● Но този тип граматики пораждат далеч по-обширно множество от езици
  • 5. Контекстно зависми език {an bn cn : n ≥ 1} ● S → aSBC ● S → aBC ● CB → HB ● HB → HC ● HC → BC ● aB → ab ● bB → bb ● bC → bc ● cC → cc ...
  • 6. Видове граматики Контекстно свободин граматики ● Нека Г е граматика (N, T, Σ, S) ● От вида : A → ω A ∈N ω ∈ (N ∪ T)+ ● В контекстно свободните граматики лявята част на правилата винаги е нетерминален символ ● Обикновено правилата на този вид граматики се описват с т.нар Бакус-Наурова Нотация
  • 7. Пример за BNF запис <postal-address> ::= <name-part> <street-address> <zip-part> <name-part> ::= <personal-part> <last-name> <opt-jr-part> <EOL> | <personal-part> <name-part> <personal-part> ::= <first-name> | <initial> "." <street-address> ::= <house-num> <street-name> <opt-apt-num> <EOL> <zip-part> ::= <town-name> "," <state-code> <ZIP-code> <EOL> <opt-jr-part> ::= "Sr." | "Jr." | <roman-numeral> | ""
  • 8. Нормални форми ● Нормална форма на Чомски ● Контекстно свободни граматики с правила от вида A → BC or A → α or S → ε ● Нормална форма на Грейбах ● Контекстно свободни граматики с правила от вида A → α X E → ε X ⊂ (N S ) *
  • 9. Синтактично дърво Нека е дадена граматика : Г = [ {S}, {1,a,+}, Σ, S] с правила (1) S → S + S (2) S → 1 (3) S → a
  • 10. Синтактично Дърво S /| / | / | S '+' S /| | / | | S '+' S 'a' | | '1' '1' S → S + S (1) → S + S + S (1) → 1 + S + S (2) → 1 + 1 + S (2) → 1 + 1 + a (3) S /| / | / | S '+' S | /| | / | '1' S '+' S | | '1' 'a' S → S + S (1) → 1 + S (2) → 1 + S + S (1) → 1 + 1 + S (2) → 1 + 1 + a (3) Ляв изводДесен извод
  • 11. Видове Граматики Автоматни граматики ● Нека Г е граматика (N, T, Σ, S) ● С правила σ от вида : A → B A → aB A → a a ∈ N A, B ∈N ● Автоматните граматики се разпознават от крайни автомати ● Регулярните изрази описват регулярни езици и в този смисъл имат същата изразна мощ като регулярните граматики
  • 12. Pushdown автомат ● Pushdown автомат е краен автомат, който може да използва стек съдържащ данни. ● Различава се от КА по това, че ● може да използва стека, за да вземе решение кой преход да извърши ● може да променя стека при прехода
  • 13. Контекстно свободни граматики с графични символи-терминали ФОРМАЛЕН ЕЗИК ЕСТЕСТВЕН ЕЗИК ГРАФИЧЕН ГЕНЕРАТИВЕН ЕЗИК букви думи графични примитиви азбука речник (лексика) графичните примитиви дума фраза (изречение) генеративна картина език множеството на изреченията всички възможни генеративни картини терминали думите графичните символи нетерминали синтактични термини генеративни правила аксиома изречение начална форма правила синтактични правила генеративни правила граматика синтаксис генеративен дизайн
  • 14. CFDG Context Free Design Grammer ● Разработена от Крис Койн ● CFDG позволява описване на множества от недетерминистични правила за създаване продукция на изображения ● Прост “синтаксис” с ограничен набор от директиви ● Напомня на BNF ● Средата за разработка се казва Context Free (.NET 2) ● Напълно безплатна ● Може да генерира анимации, които проследяват създаването на изображението (изисква QuickTime) ● CFDG генераторът има версия за Windows, MAC, Linux/Unix ● Може да създаде изображения до 100 мегапиксела ● Възможен изход към SVG ● Anti-aliasing система за графика ● Имплементирана на C++
  • 16. Графични терминални символи Окръжност Триъгълник Квадрат CIRCLE TRIANGLE SQUARE
  • 18. Трансформационна матрица ● Всяко едно правило се “разписва” / “изобразява” спрямо дадена трансформационна матрица. ● При разписване на следващото правило (при извод) може да бъде породена нова трансформационна матрица. ● Новата трансформационна матрица е изведена от предишната и по този начин всеки терминален символ е изобразен спрямо “свое трансформационно пространство”. ● Всяка сложна форма и всяко следващо правило е в ново трансформационно пространство. ● При генериране на нови форми в картината автоматично се коригира и изгледа към нея, така че да обхваща всички елементи ● Освен ако експлицитно не е приведена в действие директива за ограничаване на изгледа към катината
  • 19. Начално правило и условия ● Началното правило се разписва в трансформационна матрица със следните характеристики : ● Размерът по (x,y) е (1,1) ● Положението по оста Z е 0 ● Завъртането е на 0 градуса ● Изкривяването е (0', 0') ● Цветът е черен по HSV скалата ● Без отражение
  • 20. Най-прост CFDG пример startshape cStart rule cStart { CIRCLE {} } (0, -1/2) (0, 1/2) Заб : пунктирът няма да се изрисува от тази граматика. Заб : ограждащият квадрат (в пунктир или не) обикновено обозначава границите на резултатната структура. ● Единствено правило и единствен термнал. ● Реално изпълнима в CFDG
  • 22. Параметри на графичните примитиви ● Изписват се във фигурните скоби след графичната примитива. ● Прилагат се спрямо текущата трансформационна матрица. ● Всяко правило съществува в отделна трансофрмационна матрица. ● ● При разписване на следващото правило може (и най- вероятно ще се породи) нова трансформационна матрица ● Параметрите могат да отместят формат както в координатната система, така и в пространството на цветовете (H, S, V)
  • 23. Отместване по осите startshape cBegin rule cBegin { CIRCLE { x 1 } CIRCLE { x 2 } CIRCLE { x 3 } CIRCLE { x 4 } CIRCLE { x 5 } } (0, 1/2) (1, 1/2) (2, 1/2) (2, 1/2) // Параметрите предизвикват отместване на координатната система на примитивата по Х
  • 24. Отместване при разписване на правила startshape cBegin rule cBegin { CIRCLE {} C1 { x 1 } } rule C1 { SQUARE { } C2 { x 1 } } rule C2 { TRIANGLE { } } // Всяко правило рисува по една форма, която попада в квадрат със стена 1. // Всяко правило има извод в следващото след пренестване на текущата координатна система
  • 25. Отместване при разписване на правила startshape cBegin rule cBegin { CIRCLE {} CIRCLE {y 1} CIRCLE {y -1} CIRCLE {y -2} CIRCLE {y 2} C1 {x 1} } rule C1 { SQUARE { } C2 { x 1 } } rule C2 { TRIANGLE { } } cB → cccccD D → sE E → t
  • 26. ● Позволяват създаване на т.нар недетерминистични граматики. ● При създаване на структурата се избира едно от едноименните правила. ● Може да бъде променена вероятността да е падне дадено правило, като : ● Общата вериятност за всички едноименни правила е n, всяко има вероятност 1 ● Може да се зададе вероятност за дадено правило с число с плаваща запетая с много голяма точност ● В зависимост от подадения random seed се прави различен избор. ● Може да се преизпълни случайния фактор при подаване на същия random seed ● Механизъм за създаване на серии от подобни структури Едноименни правила
  • 27. Гранични условия ● Вграденият механизъм за ограничаване на безкрайни цикли от правила безкрайни рекурсии от правила зе задейства, когато : ● Дадена форма стане по-малка от 0.3 от един пиксел ● Когато всички нови правила (останали за разписвнае) са изработени само от терминални символи ● Няма възможност за задаване на брой рекурсивни нива ● Обичайна практика е да се включи терминално правило ● с празния символ (т.е. празно) ● само с терминални символи ● с значително по-малка вероятност и само с терминални символ ● Рекурсията може да бъде изключена напълно с параметър на командния ред '-x' ● Може да бъде ограничен броя на генерираните фор с помоща на параметър на командния ред '-m'
  • 28. Едноименни правила startshape B rule B { CIRCLE {} E { x 1 } } rule E { SQUARE { x 1 } F { y -1 } } rule E { TRIANGLE { x 1 } F { y +1} } rule F .2 { CIRCLE {} } rule F { B{} } B → cE E → sF E → tF F → c F → B
  • 30. От галерията на Context Free http://hxseven.deviantart.com/
  • 31. Полезни любопитни връзки ● Context Free Art http://www.contextfreeart.org/ ● Quick Time http://www.apple.com/quicktime/ ● Pā ini @ Wikipediaṇ ● http://en.wikipedia.org/wiki/P%C4%81%E1%B9%87ini ● Страница на курса в Moodle на ФМИ http://moodle.openfmi.net/course/view.php?id=271