debilek Temat założony przez niniejszego użytkownika |
Jak działa funkcja XMVector3ComponentsFromNormal? » 2014-09-22 18:40:07 tak wygląda funkcja VOID XMVector3ComponentsFromNormal( [ out ] XMVECTOR * pParallel, [ out ] XMVECTOR * pPerpendicular, [ in ] XMVECTOR V, [ in ] XMVECTOR Normal ); Parameters pParallel [out] Address of the component of V that is parallel to Normal. pPerpendicular [out] Address of the component of V that is perpendicular to Normal. V [in] 3D vector to break into components. Normal [in] 3D reference normal vector. |
o co chodzi z dwoma pierwszymi parametrami?? chodzi o przekształcenie wektora V tak żeby był równoległy a w drugim prostopadły do normal?? w książce jest podane że pierwsz to jest wynik proj_n(V) gnie n to normal a drugie perp_n(V) jak mam dwa wektory t1(4,2) oraz t2(1,2) to proj_t2(t1) = (1,6; 3,2) funkcja zwraca = (8, 16) ale 5 * (1,6; 3,2) = (8, 16) więc jakie on robi przekształcenie ?? a to drugie to nie wiem jak policzyć pierwszy raz widze ten zapis prep i nie moge tego nigdzie znaleźć |
|
pekfos |
» 2014-09-22 20:13:13 o co chodzi z dwoma pierwszymi parametrami?? |
To adresy zmiennych, które otrzymają obliczone przez funkcję wartości. chodzi o przekształcenie wektora V tak żeby był równoległy a w drugim prostopadły do normal?? |
Chodzi o rozbicie wektora 3D na dwa, odpowiednio równoległe i prostopadłe do Normal. |
|
debilek Temat założony przez niniejszego użytkownika |
» 2014-09-22 20:46:39 XMVECTOR projW; XMVECTOR perpW;
XMVECTOR t1 = XMVectorSet( 4.0f, 2.0f, 0.0f, 0.0f ); XMVECTOR t2 = XMVectorSet( 1.0f, 2.0f, 0.0f, 0.0f );
XMVector3ComponentsFromNormal( & projW, & perpW, t1, t2 );
cout << "projW = " << projW << endl; cout << "perpW = " << perpW << endl;
projW = (8,16, 0), a perpW =(-4, -14, 0); projW się nakłada na t2 więc jest równoległy perpW jest nieprostopadły do t1,t2,projW więc co to jest za wektor?? |
|
Monika90 |
» 2014-09-22 20:54:36 t2 to ma być wektor normalny, tzn. jego długość ma być równa 1, u Ciebie nie jest więc dostajesz błędny wynik. |
|
debilek Temat założony przez niniejszego użytkownika |
» 2014-09-22 20:58:18 czyli najpierw muszę go normalizować?? |
|
Monika90 |
» 2014-09-22 21:01:00 W zasadzie w dokumentacji nie jest napisane że ma być znormalizowany. Spróbuj go znormalizować i zobacz, co to zmieniło. |
|
debilek Temat założony przez niniejszego użytkownika |
» 2014-09-22 21:15:07 jak zamieniam wektor t2 na XMVECTOR t2 = XMVectorSet( 1.0f, 1.0f, 0.0f, 0.0f );
to mam taki wynik projW = (6,6, 0), a perpW =(-2, -4, 0); projW jest równoległy do t2 PerpW to dalej nie wiem co to jes ani prostopadły ani równoległy |
|
Monika90 |
» 2014-09-22 21:25:07 raczej zrób coś takiego XMVECTOR t2 = XMVectorSet( 1.0f, 2.0f, 0.0f, 0.0f ); t2 = XMVector3Normalize( t2 );
|
|
« 1 » 2 |