.[ ČeskéHry.cz ].
Rotacia objektu okolo bodu

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
KuboSVK



Založen: 13. 03. 2008
Příspěvky: 40

PříspěvekZaslal: 25. březen 2008, 02:28:32    Předmět: Rotacia objektu okolo bodu Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
pcmaster



Založen: 28. 07. 2007
Příspěvky: 1824

PříspěvekZaslal: 25. březen 2008, 10:18:33    Předmět: Odpovědět s citátem

OpenGL? DirectX? Nieco ine? Rucne pocitanie? S cim mas problem konkretne? Smile

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
KuboSVK



Založen: 13. 03. 2008
Příspěvky: 40

PříspěvekZaslal: 25. březen 2008, 14:22:02    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
rezna



Založen: 27. 07. 2007
Příspěvky: 2156

PříspěvekZaslal: 25. březen 2008, 14:40:33    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
KuboSVK



Založen: 13. 03. 2008
Příspěvky: 40

PříspěvekZaslal: 25. březen 2008, 17:28:03    Předmět: Odpovědět s citátem

jj, to viem, ale som zabudol spomenut, ci sa to neda nejako urobit cez quaterniony
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
pcmaster



Založen: 28. 07. 2007
Příspěvky: 1824

PříspěvekZaslal: 25. březen 2008, 18:27:48    Předmět: Odpovědět s citátem

Presne tak isto, ako cez matice Smile
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
Zobrazit informace o autorovi Odeslat soukromou zprávu
KuboSVK



Založen: 13. 03. 2008
Příspěvky: 40

PříspěvekZaslal: 25. březen 2008, 18:47:50    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
KuboSVK



Založen: 13. 03. 2008
Příspěvky: 40

PříspěvekZaslal: 25. březen 2008, 18:59:14    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
KuboSVK



Založen: 13. 03. 2008
Příspěvky: 40

PříspěvekZaslal: 25. březen 2008, 20:03:52    Předmět: Odpovědět s citátem

tak uz som to vyriesil Smile
pcmaster, dik za pomoc Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
pcmaster



Založen: 28. 07. 2007
Příspěvky: 1824

PříspěvekZaslal: 25. březen 2008, 21:22:43    Předmět: Odpovědět s citátem

Wink
_________________
Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
KuboSVK



Založen: 13. 03. 2008
Příspěvky: 40

PříspěvekZaslal: 28. březen 2008, 01:14:24    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna