Laessig
28-11-2002, 15:31
also der quellcode der musterlösung bereitet mir da einiges kopfzerbrechen:
z.b. beim skalieren
---------
public void scale(double x,double y, double z) {
double posX,posY,posZ;
posX=transformPointsMatrix.m[0][3];
posY=transformPointsMatrix.m[1][3];
posZ=transformPointsMatrix.m[2][3];
transformPointsMatrix.translate(-posX,-posY,-posZ);
....
}
----------
am anfang wird transformPointsMatrix mit der einheitsmatrix
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
instanziert.
dann wird also bei scale den posX,Y,Z werten die werte 0,0,0 zugewiesen und es passiert gar nix (mit posX=transformPointsMatrix.m[0][3] z.B.) sinnvolles.
liegt das daran daß die atoffs ohnehin schon im ursprung liegen (und daher nicht mehr dorthin bewegt werden müssen)?
und wenn ja wieso läßt man den translate teil nicht weg?
bin für alle erklärungen dankbar.
lg
z.b. beim skalieren
---------
public void scale(double x,double y, double z) {
double posX,posY,posZ;
posX=transformPointsMatrix.m[0][3];
posY=transformPointsMatrix.m[1][3];
posZ=transformPointsMatrix.m[2][3];
transformPointsMatrix.translate(-posX,-posY,-posZ);
....
}
----------
am anfang wird transformPointsMatrix mit der einheitsmatrix
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
instanziert.
dann wird also bei scale den posX,Y,Z werten die werte 0,0,0 zugewiesen und es passiert gar nix (mit posX=transformPointsMatrix.m[0][3] z.B.) sinnvolles.
liegt das daran daß die atoffs ohnehin schon im ursprung liegen (und daher nicht mehr dorthin bewegt werden müssen)?
und wenn ja wieso läßt man den translate teil nicht weg?
bin für alle erklärungen dankbar.
lg