Twitter Facebook Google+
Zpracování kód pro tento článek, spolu s obrázky, lze nalézt na Github
na Začátku minulého roku jsem si dala výzvu, aby se přijít s dvacet pět vzorů pomocí onlyPerlin tok pole a sledoval, že se s sedmdesát-pět různých způsobů, jak nakreslit kružnici.V tomto článku jsem se prozkoumat další jednoduchý úkol: patnáct různých způsobů, jak kreslit zajímavé linky.
omezení
pro tuto výzvu jsem nastavil tři omezení. Stejně jako předtím bylo mým prvním omezenímodmítnout se použití barvy, abych se místo toho mohl soustředit na formy a tvary.
za Druhé, každá verze by měla být provedena jako nezávislý, re-usablefunction podle následující prohlášení:
void line(float x1, float y1, float x2, float y2, float weight, float value) { /* * Draw a line from (x1, y1) to (x2, y2) with a given * weight and darkness (value) */}
Tímto způsobem mohu snadno použít později pro další práce. Nahoře uvidíte, že to Jedefinujte dva další parametry:hmotnost zdvihu a hodnotu (nebo lehkost/tma).
jako třetí a poslední omezení musela mít každá verze nějakou enerativní / procedurální složku. To znamená, že při každém volání funkce by měla být vygenerována nová varianta.
dost mluvení. Zde jsou výsledky! Užijte si to!
Patnáct Řádků
začal jsem s základní formátování různé váhy a hodnoty, které jsem hledal proa šel s nejjednodušší možnou linii. Níže se hmotnost zdvihu zvyšuje zleva doprava a hodnoty se zesvětlují shora dolů:
#1
mým bezprostředním dalším nutkáním bylo vytvořit tloušťku čáry z několika tenčích čar. Jako kružnici o průměru udávanou weight
je možné nahlížet na tvar přímky.Jsem vygenerován náhodný bod uvnitř kruhu kolem první koncový bod adalších po druhém, a spojit je s linkou, jejíž barva je založen na stanovenou hodnotu:
#2
Místo toho, aby čerpání kompletní linky, místo toho jsem do vzorku několik bodů na přímce insteadand kreslil malé elipsy (s požadovanou průhlednost, abych dostal správnou hodnotu):
#3
Chtěl jsem to zkusit a uvidíme, jestli bych mohl použít pevné černé vyplnit pro elipsy a varythe hodnotu pomocí hustoty vzorkování sám, a zdá se, že práce, který dělají:
#4
rozhodl jsem se přejít ozubená kola trochu, a po vytvoření několika náhodných bodů uvnitř řádku tvar, vytvořil Delaunay diagram (pomocí Lee, Byrone je fantastické Ok libraryfor Zpracování. Hodnota byla určena lightnessof řádky:
#5
Od té doby jsem byl s použitím Mesh knihovna každopádně, myslel jsem, že bych se také pokusit udělat jen aconvex trupu náhodně generované body. To dává zajímavý štětec-like tvar:
#6
v tuto chvíli jsem chtěl vyzkoušet variantu předchozího náčrtu: místo toho, abych generoval náhodné čáry končící v blízkosti koncových bodů naší linie, chtěl jsem je generovat kdekoli ve tvaru čáry. Výsledek byl nepatrně odlišný, ale jiný byl notparticularly rozpoznatelný:
#7
Od doby, co jsem byl generování náhodných bodů podél tvar linky tak, myslel jsem, že jsem jen kreslit některé elipsy místo. Používám náhodné průměry na základě zadané hmotnosti,ale toto je první, kde začnu kreslit mimo hranice původního tvaru:
#8
v dalším jsem odstranil výplň a použil jen tenký obrys. Tip: můžete zadat frakční zdvihu závaží při Zpracování tenčí linky (např. strokeWeight(0.5)
)
#9
Spíše než vytvářet elipsy s náhodné pozice a průměrů, rozhodl jsem se generatethem na původní trati s náhodným průměru až zadaný zdvih hmotnost:
#10
Tentokrát jsem šel z tahu-pouze verze do plné verze, protože jsem měl justdone, že variace betweween #8 a #9:
#11
Nyní jsem se rozhodl kombinovat verze pouze pro zdvih a pouze pro výplň. Kdysi jsem opposingcolors na mrtvici a naplnit získat různé hodnoty: lehčí hodnot adark zdvih s velmi lehkou výplň, zatímco tmavší hodnoty mají lehkou mrtvici s amuch tmavší vyplnit:
#12
přestěhovala jsem se na, aby provádět jednoduché chodítko, které procházky podél linie s náhodnými shiftsin jeho pozici. Překrýval jsem spoustu z nich, abych získal další iteraci:
#13
pak jsem snížil velikost kroku na velmi malé množství, aby se kolmo čmáranice,a kreslil jen jeden chůze od koncového bodu k enpoint s náhodné změny založené na zadaný zdvih hmotnost: