Förfarandemässigt genereras träd (2 / 10 steg)
Steg 2: Bygga stammen
Rekursiva algoritmer används ofta att generera fraktaler eller oändligt mycket komplexa visuella mönster själv-liknande. (https://en.wikipedia.org/wiki/Fractal) De skapas genom att upprepa enkla processer om och om igen.
Fibonaccien ordnar som jag nämnde tidigare, kan användas för att generera en gemensam fraktal kallas en Sierpinski triangel, till exempel. (https://en.wikipedia.org/wiki/Sierpinski_triangle)
Om du har aldrig kodat i OpenSCAD innan, eller aldrig kodat alls, oroa dig inte. Dess ganska enkelt och du kan komma långt genom att kopiera från mina exempel och med hjälp av fuska ark http://www.openscad.org/cheatsheet/
Låter som säger att du vill göra en sfär, du skulle använda kommandot sfär, och ge den en radie så här:
Sphere(5);
nu kan Säg att du vill området vara över till höger, du skulle översätta det längs x-axeln, så här:
translate([10,0,0])
{
Sphere(5);
}
Och så vidare i att mode...
Du kommer att börja genom att bygga modulen "Trunk". Denna modul genererar en vertikal cylinder, som representerar ett segment om stammen. Det mössor det bort med en sfär, som kommer att fungera som en "knoge."
Härnäst ska du skapa modulen "branch_one". Skapa en cylinder för att representera en enda filial. Gör bas radien större än den övre radien, så det kommer vara avsmalnande mot slutet av grenen.
Nästa, det är där magiskt händer. Du kommer att ringa modul "Trunk" igen. Passera i en inledande djup 5, och titta på stammen växa!
Som ni kan se, ska du minska djupet med varje samtal. Detta kommer att skapa stoppvillkor, när djupet når 0. På så sätt kan du skicka fler utflykts. Passera även i storlek. När du ringer nästa modul, du kommer klara storlek * 0,9 som den nya storlek, så att varje efterföljande gren ska få mindre och mindre.
Om du har problem med att hämta exempelkod från Instructables, har jag kastat det på GitHub som väl https://github.com/steveweber314/ProceduralTrees