Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
KuboSVK
Založen: 13. 03. 2008 Příspěvky: 40
|
Zaslal: 25. březen 2008, 02:28:32 Předmět: Rotacia objektu okolo bodu |
|
|
Chcem rotovat objekt okolo definovaneho bodu v scene pomocou mysi, pricom rotujuci objekt bude neustale natoceny na bod, okolo ktoreho sa otaca. Mam s tym mensi problem. Neporadite ako na to ??? |
|
Návrat nahoru |
|
|
pcmaster
Založen: 28. 07. 2007 Příspěvky: 1824
|
Zaslal: 25. březen 2008, 10:18:33 Předmět: |
|
|
OpenGL? DirectX? Nieco ine? Rucne pocitanie? S cim mas problem konkretne?
kód: |
// modelview matica je identita
glPushMatrix();
glRotate(uhol, 0, 1, 0);
glTranslate(kde_by_bol_objekt_v_uhle_nula_teda_napr_10_0_0);
glRotate(lokalna_rotacia_objektu);
renderObject();
glPopMatrix();
|
_________________ Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est. |
|
Návrat nahoru |
|
|
KuboSVK
Založen: 13. 03. 2008 Příspěvky: 40
|
Zaslal: 25. březen 2008, 14:22:02 Předmět: |
|
|
v DirectX, ide o to, ze mam objekt sipky, predstavujuci smer odkial osvetlujem objekt, okolo ktoreho chcem rotovat. No a ja potrebujem pohybovat s tou sipkou v 3D okolo toho objektu. |
|
Návrat nahoru |
|
|
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 25. březen 2008, 14:40:33 Předmět: |
|
|
aha - takze neznas algebru a skladani zobrazeni - nelze rotovat kolem bodu A - vzdy se rotuje kolem bodu [0,0,0] - pokud chces odsimulovat rotaci kolem A je treba slozit - posunout z A do [0,0,0], orotovat, posunout z [0,0,0] do A |
|
Návrat nahoru |
|
|
KuboSVK
Založen: 13. 03. 2008 Příspěvky: 40
|
Zaslal: 25. březen 2008, 17:28:03 Předmět: |
|
|
jj, to viem, ale som zabudol spomenut, ci sa to neda nejako urobit cez quaterniony |
|
Návrat nahoru |
|
|
pcmaster
Založen: 28. 07. 2007 Příspěvky: 1824
|
Zaslal: 25. březen 2008, 18:27:48 Předmět: |
|
|
Presne tak isto, ako cez matice
V kvaternione mas informacie len o rotacii, nie o translacii, takze to musis spravit znovu tak isto. A kedze mas HW akceleraciu, radsej si spocitas rotacnu maticu (napriklad aj z toho kvaternionu) a budes nasobit na GPU... _________________ Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est. |
|
Návrat nahoru |
|
|
KuboSVK
Založen: 13. 03. 2008 Příspěvky: 40
|
Zaslal: 25. březen 2008, 18:47:50 Předmět: |
|
|
ono ked pouzivam maticu vytvorenu z mojho kvaternionu, tak ta sipka rotuje okolo mojho objektu(aj je na neho stale natocena), len tam nieje radius(odstup) od toho objektu pri rotacii. Ked pouzijem maticu na posun(kvoli tomu radiusu) a vynasobim ju z maticou z toho mojho quaternionu, tak mi to zhaluzi (uz nie je ta sipka natocena na objekt okolo kt. rotujem)... |
|
Návrat nahoru |
|
|
KuboSVK
Založen: 13. 03. 2008 Příspěvky: 40
|
Zaslal: 25. březen 2008, 18:59:14 Předmět: |
|
|
this.device.Transform.World = Matrix.Translation(0.0f, 0.0f, -2.0f) * this.myWorldMatrix;
premmena myWorldMatrix je ten spominany quaternion(premeneny na maticu samozrejme) |
|
Návrat nahoru |
|
|
KuboSVK
Založen: 13. 03. 2008 Příspěvky: 40
|
Zaslal: 25. březen 2008, 20:03:52 Předmět: |
|
|
tak uz som to vyriesil
pcmaster, dik za pomoc |
|
Návrat nahoru |
|
|
pcmaster
Založen: 28. 07. 2007 Příspěvky: 1824
|
Zaslal: 25. březen 2008, 21:22:43 Předmět: |
|
|
_________________ Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est. |
|
Návrat nahoru |
|
|
KuboSVK
Založen: 13. 03. 2008 Příspěvky: 40
|
Zaslal: 28. březen 2008, 01:14:24 Předmět: |
|
|
Mam dalsi problem,
chcem rotovat kameru okolo objektu na suradniciach [0, 0, 0].
Nechapem preco nefunguje tento zdrojak:
Vector3 campos = new Vector3((float)(radius * Math.Cos((Math.PI/180)*degrees)), altitude, (float)(radius * Math.Sin((Math.PI/180)*degrees)));
Matrix view = Matrix.LookAtLH(camPos, new Vector(0.0f, 0.0f, 0.0f), new Vector(0.0f, 1.0f, 0.0f));
device.SetTransform(TransformType.View, view);
uz som skusal vsetko co mi napadlo a neviem ako na to .... |
|
Návrat nahoru |
|
|
|