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

Ha webszűrőt használsz, győződj meg róla, hogy a *.kastatic.org és a *.kasandbox.org nincsenek blokkolva.

Fő tartalom

Polárkoordináták

Amikor ProcessingJSben egy alakzatot rajzolunk, meg kell adnunk egy pixel helyzetet, egy x és y koordináta párt. Ezeket a koordinátákat Descartes-féle koordinátáknak hívják, a francia matematikus, René Descartes után, aki kidolgozta a Descartes-féle koordinátarendszer koncepcióját.
Egy másik hasznos koordinátarendszer a poláris koordinátarendszer, amely a térbeli pontot az origóhoz képest mért forgásszög és sugár alapján határozza meg. Ha vektorokban gondolkodunk:
  • Descartes-féle koordináta – a vektor x,y komponense
  • Poláris koordináta – a vektor nagysága (hossza) és iránya (szöge)
A ProcessingJS rajzoló függvényei azonban nem tudják kezelni a poláris koordinátákat. Ha ábrázolni akarunk valamit ProcessingJSben, akkor a helyzetet (x,y) Descartes-féle koordinátákkal kell megadni. Ezzel szemben néha sokkal kényelmesebb poláris koordinátákkal tervezni. Szerencsénkre a trigonometria segítségével könnyedén ide-oda válthatunk poláris és Descartes-féle koordinátarendszerek között, ezzel lehetőségünk van tetszőleges koordinátarendszerben tervezni, csak arra kell ügyelni, hogy rajzoláskor Descartes-féle koordinátákat adjunk meg.
Gyakran a görög θ (theta) betűt szokták használni a szög jelölésére, így általában a poláris koordináta jelölésére (r, θ)-t használjuk (x, y) helyett. Ezért amikor poláris koordinátákról van szó, a szöget megadó változó neve „theta" lesz.
szinusz(theta) = y/r → y = r * szinusz(theta)
koszinusz(theta) = x/r → x = r * koszinusz(theta)
Például, ha r értéke 75 és theta egyenlő 45 fok (vagy PI/4 radián), akkor x és y kiszámítása az alábbiak szerint történik. A szinusz és koszinusz függvények ProcessingJS-ben rendre sin() és cos(). Mindkettőnek egy átadott paramétere van, ami egy fokban mért szög.
var r = 75;
var theta = 45;

// Poláris koordináták konvertálása Descart-féle koordinátákra
var x = r * cos(theta);
var y = r * sin(theta);
Ez a konvertálási mód bizonyos alkalmazásokban előnyösen alkalmazható. Például egy alakzat köríven való mozgatása Descartes-féle koordinátákkal nem is olyan könnyű. Poláris koordinátákkal viszont nagyon egyszerű: csak a szöget kell növelni.
Alább látható egy egyszerű forgó alakzat poláris koordináták konvertálásával ábrázolva. (A programban található megjegyzések: 1. sor: Dan Shiffman, natureofcode.com példája alapján; 3-4. sor: (r,theta) poláris koordináták konvertálása Descartes-féle (x,y)-ra; 5. sor: x = r * cos(theta); 6. sor: y = r * sin(theta); 14. sor: Az origót a vászon közepére toljuk; 22. sor: Az ellipszist a Descartes-féle koordinátákkal rajzoljuk meg; 30. sor: Az idő előrehaladtával növeljük a szöget.)

Ez a „Természetes szimulációk" tananyag a Daniel Shiffman által készített „The Nature of Code” alapján készült, a Creative Commons Attribution-NonCommercial 3.0 Unported License szerint.

Szeretnél részt venni a beszélgetésben?

Még nincs hozzászólás.
Tudsz angolul? Kattints ide, ha meg szeretnéd nézni, milyen beszélgetések folynak a Khan Academy angol nyelvű oldalán.