Aiuta a identificare la terminologia per la sostituzione del modello? [chiuso]

1

Questa è una domanda dal titolo sgradevole ... forse un moderatore può renderlo migliore.

Quasi due decenni fa, ho preso una lezione di computer grafica come studente universitario. Dovevamo fare tutto ciò che volevamo per un progetto finale, purché ciò dimostrasse ciò che abbiamo imparato sulla CG.

Quindi, ho letto un libro (non riesco a pensare affatto al nome) che descrive una metodologia per generare immagini frattali che iniziano con una forma semplice e la mutano usando la sostituzione. Descriveva frattali astratti e frattali albero / fiore. Ricordo di aver implementato il triangolo di Sierpinski in uno dei miei esempi di imputs e un albero 3D.

L'input per il programma era fondamentalmente una serie di simboli arbitrari definiti dal programma. -----= potrebbe rappresentare una rosa. Quindi applichi alcune sostituzioni per un dato motivo. --= > -+=---= potrebbe rappresentare una rosa più lunga con le spine. Quindi, applicando quel modello alla stringa iniziale ottieni ----+=---= . Infine esegui il loop su questa stringa N numero di volte per creare un effetto desiderato.

Il libro stesso offriva un sacco di input con immagini di esempio, ma nessun codice sorgente reale. L'implementazione è stata completamente lasciata allo sviluppatore.

Vorrei sapere se qualcuno mi può aiutare con la terminologia per questa tecnica e i punti bonus per il nome del libro (o di un libro) che descrive questo processo?

    
posta Tim Reddy 26.08.2014 - 20:25
fonte

2 risposte

3

La mia prima ipotesi è che stai pensando a L-systems: link

Ho trovato questo esempio nel link , collegato dalla pagina Sierpinski:

The Koch Curve can be expressed by a rewrite system (Lindenmayer system).

Alphabet : F
Constants : +, −
Axiom : F++F++F
Production rules:
F → F−F++F−F

Here, F means "draw forward", + means "turn right 60°", and − means "turn left 60°".
    
risposta data 26.08.2014 - 20:51
fonte
1

Ciò che il programma sta probabilmente facendo è prendere il modello di input e interpretare ogni simbolo come un "comando", che viene eseguito in una sequenza di loop come modifiche a un modello di disegno di base. Ad esempio, "-" potrebbe essere "disegnare normalmente il segmento successivo". "=" potrebbe essere "disegna questo segmento di linea più spesso del normale", ">" potrebbe essere "girare a sinistra" e "<" sarebbe "girare a destra", e infine "+" potrebbe significare "iniziare a disegnare in tre direzioni in parallelo".

Quindi, è fondamentalmente solo un algoritmo di analisi dei comandi. Un romanzo relativamente nuovo, ma nel complesso non più complesso di qualcosa scritto per analizzare comandi più dettagliati.

    
risposta data 26.08.2014 - 20:55
fonte

Leggi altre domande sui tag