Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Jak działa funkcja XMVector3ComponentsFromNormal?

Ostatnio zmodyfikowano 2014-09-22 21:31
Autor Wiadomość
debilek
Temat założony przez niniejszego użytkownika
Jak działa funkcja XMVector3ComponentsFromNormal?
» 2014-09-22 18:40:07
tak wygląda funkcja
C/C++
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źć
P-117347
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.
P-117357
debilek
Temat założony przez niniejszego użytkownika
» 2014-09-22 20:46:39
C/C++
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??
P-117363
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.
P-117364
debilek
Temat założony przez niniejszego użytkownika
» 2014-09-22 20:58:18
czyli najpierw muszę go normalizować??
P-117365
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.
P-117367
debilek
Temat założony przez niniejszego użytkownika
» 2014-09-22 21:15:07
jak zamieniam wektor t2 na
C/C++
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
P-117368
Monika90
» 2014-09-22 21:25:07
raczej zrób coś takiego
C/C++
XMVECTOR t2 = XMVectorSet( 1.0f, 2.0f, 0.0f, 0.0f );
t2 = XMVector3Normalize( t2 );
P-117369
« 1 » 2
  Strona 1 z 2 Następna strona