Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Suorakaiteen kulman pyöritys (QB)

Sivun loppuun

Kipperi [21.02.2006 18:29:09]

#

Tarkoitus olisi saada jokin objekti pyörähtämään esim. yhden asteen kerrallaan ja sitten odottamaan näppäintä ja taas yhden asteen jne. Olettaisin että tähän ei tarvita kovin montaa riviä?

Lähdettäisiin vaikka tästä:

SCREEN 12
X=50
Y=50
X2=200
Y2=200

DO

<tähän väliin luulisin trigonometristen tms komentojen tulevan>

LINE (X,Y)-(X2,Y2),4,B
A$=INPUT$(1)

LOOP

tejeez [21.02.2006 18:48:11]

#

yhdellä linellä piirrettyä suorakaidetta et saa pyöriteltyä. tarvit neljä erillistä lineä. joku muu selittäköön tarkemmin.

Kipperi [21.02.2006 19:01:25]

#

No muotoillaan kysymystä hieman toisenlaiseksi(toki edelliseenkin saa vastata); otetaan pallo, joka liikkuu ruudulla. Se pyörii 360 astetta sivunuolista, liikkuu eteen/ylös taakse/alas. Kuinka kulmaa voi kääntää yhden...

Jaska [21.02.2006 19:29:05]

#

Mikäs ongelma tässä on? Ensin poistat vanhan janan, lasket uudet koordinaatit kertomalla vanhat luvulla e^(i Pi/180), ja lopuksi piirrät kuvion uudessa asennossa. Tämä kääntää kuviota yhden asteen positiiviseen kiertosuuntaan origon suhteen.

Kipperi [21.02.2006 19:38:21]

#

...jossa "e" on...? jossa "i" on...?

Jaska [21.02.2006 20:01:06]

#

Neperin luku ja imaginääriyksikkö.

Sami [21.02.2006 20:02:31]

#

e on e (neperin luku) ja i on i (imaginääriluku tai -yksikkö).
Katso vaikka wikipedia http://en.wikipedia.org/wiki/E_(mathematical_constant) ja http://en.wikipedia.org/wiki/Imaginary_number

Kipperi [21.02.2006 20:08:45]

#

i:n ja Piin välillä ei lue mitään Jaskan esimerkissä...? Tarkoittaako kertolaskua?

Jaska [21.02.2006 20:13:08]

#

Algebrassa on tapana jättää kertomerkki pois. Siis tarkoittaa.

Kipperi [21.02.2006 20:17:05]

#

käsitin että i tarkoittaa -1 luulen että käsitin väärin

Metabolix [21.02.2006 20:43:05]

#

Niinpä teit. i * i = -1. Tännekin tuli taas harvinaisen fiksuja vastauksia. Miksette saman tien neuvoneet, kuinka kolmiulotteisessa avaruudessa pyörittäminen hoituu kauniisti kvaterniolla? Annetaanpa nyt parantuneen hengen nimissä järkeviä vastauksia.

Xu = cos(a) * X - sin(a) * Y;
Yu = cos(a) * Y + sin(a) * X;

Muistaakseni noin. Jos positiivinen kiertosuunta ei miellytä, vaihda plussa ja miinus toisin päin. Vihjeenä vielä, että kannattaa laskea sini ja kosini valmiiksi muuttujiin ja käyttää muuttujissa olevia arvoja kaikille pyöritettäville pisteille, koska sinin ja kosinin laskeminen on suhteellisen hidasta.

Kannattaa aina aloittaa alkuperäisistä koordinaateista, koska muuten luvut muuttuvat aina vain epätarkemmiksi eikä laatikko kohta olekaan laatikko.

Lisäksi et voi tehdä tuota enää aivan samalla tavalla kuin ennen. Tarvitset kaikkien neljän kulman koordinaatit, ja joikainen kulma pitää aina laskea uudestaan. Sitten vain yhdistät ne oikeassa järjestyksessä. Eli yhdellä LINEllä ei mene.

Edit. Niin, T.M. tuossa näyttääkin lausekkeesta helpommin sovellettavan muodon, eli lasketaan vain tietty matka tiettyyn suuntaan ja lisätään halutut keskipisteen koordinaatit.

T.M. [21.02.2006 20:43:57]

#

Itse tein yhden viivan pyörityksen näppäimillä siten, että kasvatin kulmaa joka näppäimenpainalluksella esim +0.01:llä, ja sitten laskin tuosta arvosta sin ja cos arvot (x:lle sin, ja y:lle cos), elikkäs:

ax = sin(kulma)*sade;
ay = cos(kulma)*sade;
line(x, y, x+ax, y+ay)

Edit: Ihmettelen miten Neperin luku ja imaginääriyksikkö liittyvät mitenkään tähän o_O *ei osaa*
Mielestäni tuollaiset elitistijutut voi jättää pois ja kertoa vastauksen, eikä heittää ihan ufoja kaavoja joita kukaan ei tajua.

Kipperi [21.02.2006 21:01:27]

#

kaunista korkkiruuvia rupesi piirtämään kun vihdoin viimein älysin tuon jutun. xD

os [21.02.2006 21:09:28]

#

T.M. kirjoitti:

Ihmettelen miten Neperin luku ja imaginääriyksikkö liittyvät mitenkään tähän

Trigonometriset funktiot ja eksponenttifunktio, e^x, voidaan määritellä sarjakehitelmien avulla (http://en.wikipedia.org/wiki/Taylor_series­#List_of_Taylor_series_of_some_common_functions), jolloin niitä voidaan käyttää laajemmilla lukualueilla (kaikki reaali- ja kompleksiluvut), välittämättä siitä, mitä ihmettä esimerkiksi 2 ^ PI käytännössä voisi tarkoittaa.

Kun ekspontenttifunktion sarjakehitelmään sijoitetaan i*x, huomataan (varsin hämmästyttävä) yhteys, Eulerin kaava:

e^(ix) = cos(x) + i*sin(x)

Tästä ei käytännössä ole ainakaan peliohjelmoijalle mitään hyötyä (toisin kuin kvaternioista). Ja varsinkaan jos ei vielä hallitse trigonometriaa, ei muiden tällaisella matemaattisella triviatiedolla brassailu ainakaan auta asiaa.

Jaska [21.02.2006 22:19:48]

#

Toisinaan voi olla vaikea tietää, minkä verran jollakin on esitietoja matematiikasta. En minä kirjoittanut viestiäni brassaillakseni, minusta vaan kompleksiluvut (myös kvaterniot) ovat helppo tapa hahmottaa pyörityksiä. Kyllä minäkin olen muualla saanut välillä ihan heprealta kuullostavia vastauksia omiin matematiikan ongelmiin, jotka olen sitten joko lisäkysymyksillä tai kynällä ja paperilla selvittänyt itselleni. En ole kokenut vastauksia mitenkään typeriksi, vaan olen ollut iloinen, kun olen huomannut, että asiaa voi ajatella myös kokonaan eri lailla kuin mitä minä ajattelin.

Metabolix [21.02.2006 22:23:06]

#

Toisinaan voi olla helppo arvata, että jos joku ei osaa kääntää laatikkoa ruudulla, hän ei varmaankaan tunne imaginäärilukuja ja tuollaisia hienoja menetelmiä :) Minullekaan ei sano mitään tuollainen imaginääriluku eksponenttina, ja sentään olen yrittänyt edes jossakin määrin ymmärtää kvaternioita, jotta voisin niitä paremmin projektissani käyttää.

Jaska [21.02.2006 22:26:41]

#

Vaan nytpä oppitte, jos alatte tämän kirjoittelun perusteella opiskelemaan kompleksilukuja. :)

Kipperi [22.02.2006 17:09:00]

#

Ööh... Täytyy myöntää että nämä matemaattiset kaavat ja sarjakehitelmät ja kvaterniot tms eivät tällä hetkellä ole vahvinta alaani (pääsyynä että niitä ei ole vielä opetettu...) mutta eiköhän niidenkin aika tule joskus.:)

os [22.02.2006 17:30:37]

#

Kipperi kirjoitti:

Ööh... Täytyy myöntää että nämä matemaattiset kaavat ja sarjakehitelmät ja kvaterniot tms eivät tällä hetkellä ole vahvinta alaani (pääsyynä että niitä ei ole vielä opetettu...) mutta eiköhän niidenkin aika tule joskus.:)

...yliopistossa.

Kipperi [22.02.2006 17:42:29]

#

Mahdollisesti jo lukiossa...

Metabolix [22.02.2006 20:17:10]

#

Jos kvaternioita opetetaan lukiossa (muualla kuin ehkä Päivölässä), niin minä syön hattuni :)


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta