Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#26 13. 11. 2010 11:00

Lumikodlak
Místo: Praha
Příspěvky: 212
Pozice: Programator nebo tak neco :-)
Reputace:   19 
 

Re: Zobrazení krychle na ploše + možnost otáčení s krychlí

Otacis tu krychli postupne? Ze ji nejdriv otocis, a pak otocis znova?

Nevim ted presne, jak to myslis, asi bys musel ukazat obrazek nebo kod.

Offline

 

#27 13. 11. 2010 13:19

Pazzi
Zelenáč
Příspěvky: 24
Reputace:   
 

Re: Zobrazení krychle na ploše + možnost otáčení s krychlí

Otacim ji podle vzorecku, ktery jsi napsal.
V kodu nic nenajdes, proste vemu souřadnice každého bodu v 3D, přepočítám je na 2D a potom ty 2D souřadnice pospojuju přímkama, aby mi utvořili krychli.

Tady je video otáčející se krychle, jak pracuje teď:
http://www.uloz.to/6543934/krychle-2-be … -48-18-mp4

Offline

 

#28 13. 11. 2010 14:28

Lumikodlak
Místo: Praha
Příspěvky: 212
Pozice: Programator nebo tak neco :-)
Reputace:   19 
 

Re: Zobrazení krychle na ploše + možnost otáčení s krychlí

Asi vim, co myslis, ale to nebude jednoduche. Kdyz si zkusis vzit do ruky treba knizku, a otocis ji nejdriv v jeji souradnici X o 90 stupnu a pak v Y o 90 stupnu, tak ve vysledku bude otocena jinak, nez kdybys otocil nejdriv v Y o 90, a pak v X o 90 (I kdyz u krychle by to vypadalo stejne). Takze kdyz reknes otocit o 90 X a o 90 Y, tak ktere otoceni by se melo provest?

Potrebujes tu krychli otacet dynamicky, nebo by ti stacilo nekolik prednastavenych pohledu?

Kdyztak zkusim pozdeji jeste napsat nejake matice nebo vzorce.

Offline

 

#29 13. 11. 2010 15:58

Pazzi
Zelenáč
Příspěvky: 24
Reputace:   
 

Re: Zobrazení krychle na ploše + možnost otáčení s krychlí

Potřebuju právě dynamicky. Ten program má být pro výuku stereometrie (řezy krychlí/kvádrem), takže potřebuju, aby si uživatel mohl krychli otáčet do různých pohledů... Sakra, teď jsem si uvědomil, že to právě jde i přes statické osy (osy otáčení budou osy souřadnic) a možná to bude pro uživatele i pohodlnější...

OK, tak to nevadí, tím pádem na osy krychle můžeme asi zapomenout. Ale jestli bys mohl ještě nějak vylepšit ten vzorec, aby byl reálnější, protože když krychli otočím o třeba 60° po ose x a 30° po ose y, tak je jinak otočená, než když ji otočím o 60° po x a o 390° po y (což je ale to samé).
Není samozřejmě problém napsat if(alfa>360){alfa-=360}, ale jde mi spíš o to, že potom krychle poskočí a uživatel může být zmatený a hlavně to otočení potom není pravdivé.

Každopádně díky za všechen čas, co jsi mi věnoval.

Offline

 

#30 13. 11. 2010 18:36 — Editoval Lumikodlak (14. 11. 2010 20:02)

Lumikodlak
Místo: Praha
Příspěvky: 212
Pozice: Programator nebo tak neco :-)
Reputace:   19 
 

Re: Zobrazení krychle na ploše + možnost otáčení s krychlí

Muzes zkusit treba tyhle vzorce:

(bez toho U, ux a uy)
(A - uhel alfa, B - uhel beta)

x2 = X*cosB + Y*sinA*sinB + Z*cosA*sinB
y2 =                Y*cosA        -  Z*sinA

a nebo

x2 = X*cosB                      + Z*sinB
y2 = X*sinA*sinB + Y*cosA - Z*cosB*sinA


melo by to byt vlastne otaceni podle polarnich souradnic, 390 v tomhle pripade bude stejne jako 30, ale bude se to otacet jinym zpusobem nez predtim.

To otaceni by slo udelat i jakkoliv volne, na to by ale nestacily jen dve osy otaceni, ale musela by se zadavat/menit cela transformacni matice.

Offline

 

#31 14. 11. 2010 19:17

Pazzi
Zelenáč
Příspěvky: 24
Reputace:   
 

Re: Zobrazení krychle na ploše + možnost otáčení s krychlí

To taky nefunguje, nezachovává se krychle. Když otáčím jen jednou osou, otáčím se čtvercem a až přidám otáčení po druhé ose, tak se objeví kvádr, potom nachvíli krychle a zase kvádr, který se navíc různě kroutí apod.

Zkoušel jsem i přehodit úhel alfa a beta, ale taky nesedělo.

Offline

 

#32 14. 11. 2010 19:46

Lumikodlak
Místo: Praha
Příspěvky: 212
Pozice: Programator nebo tak neco :-)
Reputace:   19 
 

Re: Zobrazení krychle na ploše + možnost otáčení s krychlí

Tak tam asi mam chybu, podivam se na to.

Offline

 

#33 14. 11. 2010 20:04 — Editoval Lumikodlak (14. 11. 2010 20:07)

Lumikodlak
Místo: Praha
Příspěvky: 212
Pozice: Programator nebo tak neco :-)
Reputace:   19 
 

Re: Zobrazení krychle na ploše + možnost otáčení s krychlí

Byly tam chyby, sry, opravil jsem je, asi jsem to spatne opsal nebo ja nevim.

(jo jeste me napada - jestli sis to nerozmyslel, a nechces to udelat v OpenGL nebo DirectX? :-))

Offline

 

#34 14. 11. 2010 23:36 — Editoval Pazzi (14. 11. 2010 23:41)

Pazzi
Zelenáč
Příspěvky: 24
Reputace:   
 

Re: Zobrazení krychle na ploše + možnost otáčení s krychlí

No kdybych věděl jak to tam nastavit, tak jo. Na druhou stranu mě učitel přemlouvá, ať si to právě sepíšu sám. Něco na tom je, ale bere to strašně moc času...

Jinak vzorec už funguje v pořádku (zkoušel jsem jen ten druhý - zatím).
Akorád pravidelný šestiúhelník vznikne při otočení alfa = 35 a beta = 45 (a ne 45,45 jak by správně mělo být).

Offline

 

#35 15. 11. 2010 15:04

Lumikodlak
Místo: Praha
Příspěvky: 212
Pozice: Programator nebo tak neco :-)
Reputace:   19 
 

Re: Zobrazení krychle na ploše + možnost otáčení s krychlí

Ok, ptal jsem se, protoze nevim, co vsechno ten program ma umet, je to na tobe no (jestli sam, OpenGL nebo DirectX).

Co se tyce toho otoceni, tak nevim, jestli to pujde udelat tak, aby ten sestiuhelnik byl pri 45, 45.
Kdyz otacis, je to vzdycky kolem nejake osy. Kdyz ches otacet jakoby ve smeru X, je to ve skutecnosti otaceni kolem osy Y, a ta krychle se otaci zaroven ve smeru Z. To same ve smeru Y - je to kolem osy X. Jestli chces otacet ve smeru X a Y zaroven, tak stejne nemuzes mit vic nez jednu osu otaceni. Leda ze bys otocil nejdriv podle X, a pak podle Y, coz je tenhle pripad - proto tech 45, 45 takhle nefunguje - protoze se to otaci o 45 uz z krychle jednou o 45 otocene (v jinem smeru).

No ja to nedovedu asi moc dobre vysvetlit. Dival jsi se, jak maji delane otaceni ruzne graficke programy a tak podobne? Jak uz jsem psal predtim - jestli chces uplnou volnost, budes potrebovat menit celou transformacni matici, a ne jenom otaceni ve smeru X a Y. Zkusim pozdeji jeste vymyslet nejakou transformaci, ale ta nejspis nebude vyhovovat v jinych vecech.

Offline

 

#36 15. 11. 2010 18:27

Pazzi
Zelenáč
Příspěvky: 24
Reputace:   
 

Re: Zobrazení krychle na ploše + možnost otáčení s krychlí

No a ty víš jak to upravit v tom directx? Jak nastavit perspektivitu? Já dělám s DirectX poprvé. A mohl bys mi tedy ještě popsat jak jsi sestrojil tu matici pro otáčení krychle? Nějaké zdroje, vzorečky ze kterých jsi vycházel apod. Díky

Offline

 

#37 15. 11. 2010 19:05

Lumikodlak
Místo: Praha
Příspěvky: 212
Pozice: Programator nebo tak neco :-)
Reputace:   19 
 

Re: Zobrazení krychle na ploše + možnost otáčení s krychlí

V directx uz jsem nedelal docela dlouho, takze to presne nevim, ted je nejak vic verzi, takze zalezi na tom, kterou pouzivas. Podle me by to nastaveni melo jit najit jednouse hledanim 'perspective' nekde v referencnim manualu, ale myslel jsem, ze perpektivu nechces - ze chces ortonormalni projekci - aby se ty hrany nesbihaly. Nasel jsem tohle a tohle napriklad, ale mozna to neni ono. V OpenGL jestli se nepletu tak ortonormalni projekce je defaultni, a ani bys perpektivu nastavovat nemusel.

Pri sestavovani tech matic jsem se akorat dival sem, pro tu minulou transformaci ten obecny vzorec (Rotation matrix given an axis and an angle - uz=0), a ty dve posledni jsou vynasobene ty 'Basic rotation' podle osy X a Y. Nevim ale, jestli to necemu pomuze, je k tomu podle me dobre znat i spousty tech dalsich veci a teorie okolo. Napada me mozna podivat se na nejaky directx nebo opengl tutorial.

Offline

 

#38 19. 11. 2010 18:08

Pazzi
Zelenáč
Příspěvky: 24
Reputace:   
 

Re: Zobrazení krychle na ploše + možnost otáčení s krychlí

Jo díky moc,
potřeboval jsem najít tento příkaz:
...Viewport.Camera.UsingOrthogonalProjection=true;

Ještě jednou teda děkuju za pomoc, moc si toho vážím, téma označuju za vyřešené.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson