If you're seeing this message, it means we're having trouble loading external resources on our website.

Pokud používáš webový filtr, ujisti se, že domény: *.kastatic.org and *.kasandbox.org jsou vyloučeny z filtrování.

Hlavní obsah

Co jsou to 3D tvary?

Tento kurz pochází od Petera Collingridge a byl původně zveřejněn na jeho stránce.
Pokud programuješ zde na Khan Academy, pravděpodobně už máš nakreslenou celou řadu 2D tvarů, třeba různé obdélníky a elipsy. Možná tě ale napadlo, jak se asi vytváří 3D tvary, jako jsou krychle a koule.
Knihovna ProcessingJS, kterou zde používáme, není ve skutečnosti určena pro 3D grafiku, ale jak se ukazuje, s použitím trigonometrie můžeme napsat vlastní 3D grafický modul, a tím se trochu naučit, jak 3D grafika funguje (další odpověď na otázku, proč je dobré znát trigonometrii i mimo hodiny matematiky!).
Zde je příklad programu, který můžeš napsat - k otočení donutu použij myš:

Co je to 3D grafika?

Vzhledem k tomu, že počítačové obrazovky jsou v podstatě dvojrozměrné, 3D grafika je jen 2D optickou iluzí, která náš mozek přesvědčí o tom, že vidí 3D objekt. Zde je jednoduchý příklad:
3D kostka
Tři rovnoběžníky, které předstírají, že jsou krychlí
3D grafický modul funguje tak, že spočítá, jaké 2D tvary by 3D objekt promítal na obrazovku. Takže abychom mohli napsat náš vlastní 3D modul, potřebujeme vědět, jak tyto výpočty provést. Náš program nebude tak rychlý jako většina 3D modulů, ale měl by nám pomoci porozumět principům jejich fungování.

Reprezentace tvarů

3D grafický modul vezme 3D objekt a konvertuje ho na 2D grafiku, ale jak se 3D objekt v kódu vyjadřuje?
Bod ve 3D prostoru lze snadno popsat pomocí pole tří čísel. Například můžeme použít [30, 80, 55] k vyjádření bodu, který je 30 pixelů podél vodorovné osy (x), 80 pixelů podél svislé osy (y) a 55 pixelů podél osy, která jde do obrazovky a mimo obrazovku. Pohraj si s níže uvedeným bodem, zkus ho otočit a pozměnit čísla:
Vytvoření přímky je také jednoduché: stačí spojit dva body. Jedním ze způsobů, jak reprezentovat objekt v 3D podobě, je převést ho na skupinu čar. Tomu se říká drátový model, protože vypadá jako objekt vyrobený z drátu. Očividně se pro vyjádření pevných objektů moc nehodí, ale je to dobrý začátek.

Podmínky

Níže jsou výrazy, které použijeme při odkazování na 3D tvary. Jinde by se mohly používat jiné výrazy, ale tyto jsou velmi populární.
  • Node (uzel): bod znázorněný třemi souřadnicemi, x, y a z (můžeme být také nazýván vertex neboli česky vrchol).
  • Edge (hrana) : čára spojující dva body.
  • Face (plocha): povrch definovaný alespoň třemi body.
  • Wireframe (drátový model: tvar sestávající pouze z uzlů (nodes) a hran (edges).

Chceš se zapojit do diskuze?

Zatím žádné příspěvky.
Umíš anglicky? Kliknutím zobrazíš diskuzi anglické verze Khan Academy.