Hlavní obsah
Programování
Popis 3D tvarů
Jednoduchým tvarem pro začátek je krychle. Třebaže má čtyřstěn méně stran, jeho strany nejsou pravoúhlé, což věci komplikuje. Začneme vytvořením krychle o rozměrech 200×200×200 pixelů, umístěné na počátek souřadnic (0, 0, 0).
Nebudeme začínat tím, že bychom něco kreslili, ale tím, že vytvoříme pole čísel, která popisují naše tvary ve 3D tvaru - konkrétně, pole, která popisují naše uzly a naše hrany.
Uzly
Začneme tím, že definujeme pole uzlů, kde každý uzel je polem tří čísel, souřadnice x, y a z:
var node0 = [-100, -100, -100];
var node1 = [-100, -100, 100];
var node2 = [-100, 100, -100];
var node3 = [-100, 100, 100];
var node4 = [ 100, -100, -100];
var node5 = [ 100, -100, 100];
var node6 = [ 100, 100, -100];
var node7 = [ 100, 100, 100];
var nodes = [node0, node1, node2, node3, node4, node5, node6, node7];
Jak si můžeš všimnout, naše uzly popisují všech 8 způsobů, jak uspořádat tři kombinace kladných nebo záporných hodnot 100.
V níže uvedené vizualizaci můžeš vidět uzly krychle 2x2x2 umístěné v počátku souřadnic. Otoč je pomocí myši:
Hrany
Dále definujeme pole hran, kde každá hrana je polem dvou čísel. Například
edge0
definuje hranu mezi node0
a node1
. Začneme počítat na 0, protože pole jsou indexována s nulou na začátku (pro získání hodnoty prvního uzlu zadáme nodes[0]
).var edge0 = [0, 1];
var edge1 = [1, 3];
var edge2 = [3, 2];
var edge3 = [2, 0];
var edge4 = [4, 5];
var edge5 = [5, 7];
var edge6 = [7, 6];
var edge7 = [6, 4];
var edge8 = [0, 4];
var edge9 = [1, 5];
var edge10 = [2, 6];
var edge11 = [3, 7];
var edges = [edge0, edge1, edge2, edge3, edge4, edge5, edge6, edge7, edge8, edge9, edge10, edge11];
Složitější částí je ujistit se, že se spojí dohromady ty správné hrany. Zde je vizualizace hran, které spojujeme do krychle.
Chceš se zapojit do diskuze?
Zatím žádné příspěvky.