Chesto mi se sluchva da svalqm ot iNet razni math libs, i obshto vzeto
mislq che v tqh ima kakvo da se vidi ot chisto prakticheska gledna
tochka, no eto na kakvo se natyknah na skoro:
(za kratkost sym slojil declaraciite i implementaciqta na edno mqsto)
typedef struct vector_3d_typ
{
float x, y, z;
} point_3d,vector_3d,*point_3d_ptr,*vector_3d_ptr;
//////////////////////////////////////////////////////////////////////////////////////////
// returns the magnitude of a vector
//
//////////////////////////////////////////////////////////////////////////////////////////
float vec_magnitude(vector_3d v)
{
float temp = v.x*v.x + v.y*v.y + v.z*v.z;
if(temp >= 0)
return (float)sqrt(temp);
else
return (float)sqrt(-temp);
}
//////////////////////////////////////////////////////////////////////////////////////////
// normalize a vector (magnitude == 1)
//
//////////////////////////////////////////////////////////////////////////////////////////
void vec_normalize(vector_3d *v)
{
float temp = v->x*v->x + v->y*v->y + v->z*v->z;
float magnitude = sqrt(v->x * v->x + v->y * v->y + v->z * v->z);
if(temp >= 0)
magnitude = sqrt(temp);
else
magnitude = sqrt(-temp);
v->x = v->x / magnitude;
v->y = v->y / magnitude;
v->z = v->z / magnitude;
}
//////////////////////////////////////////////////////////////////////////////////////////
// computes the dot product between u and v
//
//////////////////////////////////////////////////////////////////////////////////////////
float vec_dot_product(vector_3d u, vector_3d v)
{
return( (u.x * v.x) + (u.y + v.y) + (u.z + v.z));
}
//////////////////////////////////////////////////////////////////////////////////////////
// computes the distance between a and b
//
//////////////////////////////////////////////////////////////////////////////////////////
float vec_distance(point_3d a, point_3d b)
{
float dx, dy, dz;
float temp;
dx = b.x-a.x;
dy = b.y-a.y;
dz = b.z-a.z;
temp = dx*dx + dy*dy + dz*dz;
if(temp >= 0)
return (sqrt(temp));
else
return sqrt(-temp);
}
dano ne rabotim nqkoga s programist, pishesht tolkova "korekten" i
"efektiven" code:))
Martin
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
* To unsubscribe from this list, send e-mail to [EMAIL PROTECTED]
without subject and with message body "unsubscribe jokes [EMAIL PROTECTED]"
(without quotes)
* To subscribe to this list, send e-mail to [EMAIL PROTECTED]
without subject and with message body "subscribe jokes [EMAIL PROTECTED]"
(without quotes)
* Mails to this list should be sent to [EMAIL PROTECTED]
* If you experience any problems contact [EMAIL PROTECTED]
* Archives available at [EMAIL PROTECTED]
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=