// ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» // º Vector.C º // º º // º For more info about Vector see Math.txt º // º º // º By Volpone of Malorean Effect º // º for crazy mathematicians like Toto º // º º // º º // º Version 1.0 º // º Release November 1993 º // º º // º Hello to : Toto,Sally,42 Crew,Aghesacha, º // º Mc2,Sun,Redlight,Locked,Fafa º // º º // ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ #include typedef struct { float X,Y,Z ; } Cvector; typedef struct { float R,Fi,Z ; } Pvector; Cvector operator +(Cvector U,Cvector V); Pvector operator +(Pvector U,Pvector V); Cvector operator -(Cvector U,Cvector V); float operator *(Cvector U,Cvector V); Cvector operator *(float U,Cvector V); Cvector operator ^(Cvector U,Cvector V); Cvector operator /(Cvector U,Cvector V); Cvector DVP (Cvector U,Cvector V,Cvector W); // -> -> -> -> -> -> // DVP(U, V, W ) = U ^ (V ^ V); Pvector PolarConvert (Cvector U); //************************************************************************ Cvector operator +(Cvector U, Cvector V) { Cvector Buf ; Buf.X=U.X+V.X; Buf.X=U.Y+V.Y; Buf.X=U.Z+V.Z; return (Buf); }; Pvector operator +(Pvector U, Pvector V) { Pvector Buf ; Buf.R=U.R+V.R; Buf.Fi=U.Fi+V.Fi; Buf.Z=U.Z+V.Z; return (Buf); }; //************************************************************************ Cvector operator -(Cvector U, Cvector V) { Cvector Buf ; Buf.X=U.X-V.X; Buf.X=U.Y-V.Y; Buf.X=U.Z-V.Z; return (Buf); }; //************************************************************************ float operator *(Cvector U, Cvector V) { float Buf ; Buf=U.X*V.X+U.Y*V.Y+U.Z*V.Z; return (Buf); }; //************************************************************************ Cvector operator *(float U, Cvector V ) { Cvector Buf ; Buf.X=U*V.X; Buf.Y=U*V.Y; Buf.Z=U*V.Z; return (Buf); }; //************************************************************************ Cvector operator ^(Cvector U, Cvector V ) { Cvector Buf ; Buf.X=U.Y*V.Z-V.Y*U.Z; Buf.Y=U.Z*V.X-V.Z*U.X; Buf.Z=U.X*V.Y-V.X*U.Y; return (Buf); }; //************************************************************************ Cvector operator /(Cvector U, Cvector V ) { Cvector Buf ; Buf.X=U.Y*V.Z-V.Y*U.Z; Buf.Y=U.Z*V.X-V.Z*U.X; Buf.Z=U.X*V.Y-V.X*U.Y; return (Buf); }; //************************************************************************ Cvector DVP (Cvector U,Cvector V,Cvector W) { Cvector Buf ; Buf=(U*W)*V-(U*V)*W; return (Buf); } //************************************************************************ Pvector PolarConvert (Cvector U) { Pvector Buf ; Buf.R = sqrt(U.X*U.X+U.Y*U.Y); if (U.X=0) Buf.Fi = 0 ; else Buf.Fi = atan(U.Y/U.X) ; Buf.Z = U.Z ; return (Buf); } //************************************************************************