- procedure TGLFenster.RotumX(var Bx,By,Bz:T3DVector;wx:single);
- var b:single;
- begin
- bz.x:=by.x*tan(wx)+bz.x;
- bz.y:=by.y*tan(wx)+bz.y;
- bz.z:=by.z*tan(wx)+bz.z;
- b:=sqrt(bz.x*bz.x+bz.y*bz.y+bz.z*bz.z);
- bz.x:=bz.x/b;
- bz.y:=bz.y/b;
- bz.z:=bz.z/b;
- by:=self.CalcNormal(bz,bx);
- end;
- procedure TGLFenster.Rotumy(var Bx,By,Bz:T3DVector;wy:single);
- var b:single;
- begin
- bx.x:=bz.x*tan(wy)+bx.x;
- bx.y:=bz.y*tan(wy)+bx.y;
- bx.z:=bz.z*tan(wy)+bx.z;
- b:=sqrt(bx.x*bx.x+bx.y*bx.y+bx.z*bx.z);
- bx.x:=bx.x/b;
- bx.y:=bx.y/b;
- bx.z:=bx.z/b;
- bz:=self.CalcNormal(bx,by);
- end;
- procedure TGLFenster.Rotumz(var Bx,By,Bz:T3DVector;wz:single);
- var b:single;
- begin
- by.x:=bx.x*tan(wz)+by.x;
- by.y:=bx.y*tan(wz)+by.y;
- by.z:=bx.z*tan(wz)+by.z;
- b:=sqrt(by.x*by.x+by.y*by.y+by.z*by.z);
- by.x:=by.x/b;
- by.y:=by.y/b;
- by.z:=by.z/b;
- bx:=self.CalcNormal(by,bz);
- end;