Czy to dowcip? rotacje nie macierzowe 3d

0

Ten "błąd" [???] kosztował mnie 2dni :-[ [!!!]
a odkrycie go doprowadziło mnie do ataku śmiechu ;-P

Dotyczył on podstawowego działania polegającego na obrocie punktu 3D wokół zadanego pkt.

tak więc

felerny kod:

    c3DPoint pt = obj->pos;
    c3DPoint p  = srodek_ukladu;

    pt = RotateOX(pt,  obj->rot.x,  p.y,p.z);
    pt = RotateOY(pt, -obj->rot.y,  p.x,p.z);
    pt = RotateOZ(pt,  obj->rot.z,  p.x,p.y);

poprawny kod:

    c3DPoint pt = obj->pos;
    c3DPoint p  = srodek_ukladu;

    pt = RotateOZ(pt,  obj->rot.z,  p.x,p.y);
    pt = RotateOY(pt, -obj->rot.y,  p.x,p.z);
    pt = RotateOX(pt,  obj->rot.x,  p.y,p.z);

I tak szczeże to nie wiem czemu to 2 jest ok..wiem że tak ma być i tyle, ale ciekawość zżera.
Wiec prosze czy ktoś może mi fachowo ;-) wytłumaczyć czemu tak się dzieje?

0

user image
gdy obracamy w okół osi X zmianie ulegają współrzędne Y i Z, a X zostaje taka sama, podobnie z innymi

1 użytkowników online, w tym zalogowanych: 0, gości: 1