dsound: Implement AngleBetweenVectorsDeg as a call to AngleBetweenVectorsRad.
This commit is contained in:
parent
8d571e28f1
commit
545a774fcc
@ -102,23 +102,6 @@ static inline D3DVALUE RadToDeg (D3DVALUE angle)
|
|||||||
return newangle;
|
return newangle;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* angle between vectors - deg version */
|
|
||||||
static inline D3DVALUE AngleBetweenVectorsDeg (const D3DVECTOR *a, const D3DVECTOR *b)
|
|
||||||
{
|
|
||||||
D3DVALUE la, lb, product, angle, cos;
|
|
||||||
/* definition of scalar product: a*b = |a|*|b|*cos...therefore: */
|
|
||||||
product = ScalarProduct (a,b);
|
|
||||||
la = VectorMagnitude (a);
|
|
||||||
lb = VectorMagnitude (b);
|
|
||||||
cos = product/(la*lb);
|
|
||||||
angle = acos(cos);
|
|
||||||
/* we now have angle in radians */
|
|
||||||
angle = RadToDeg(angle);
|
|
||||||
TRACE("angle between (%f,%f,%f) and (%f,%f,%f) = %f degrees\n", a->x, a->y, a->z, b->x,
|
|
||||||
b->y, b->z, angle);
|
|
||||||
return angle;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* angle between vectors - rad version */
|
/* angle between vectors - rad version */
|
||||||
static inline D3DVALUE AngleBetweenVectorsRad (const D3DVECTOR *a, const D3DVECTOR *b)
|
static inline D3DVALUE AngleBetweenVectorsRad (const D3DVECTOR *a, const D3DVECTOR *b)
|
||||||
{
|
{
|
||||||
@ -129,11 +112,16 @@ static inline D3DVALUE AngleBetweenVectorsRad (const D3DVECTOR *a, const D3DVECT
|
|||||||
lb = VectorMagnitude (b);
|
lb = VectorMagnitude (b);
|
||||||
cos = product/(la*lb);
|
cos = product/(la*lb);
|
||||||
angle = acos(cos);
|
angle = acos(cos);
|
||||||
TRACE("angle between (%f,%f,%f) and (%f,%f,%f) = %f radians\n", a->x, a->y, a->z, b->x,
|
TRACE("angle between (%f,%f,%f) and (%f,%f,%f) = %f radians (%f degrees)\n", a->x, a->y, a->z, b->x,
|
||||||
b->y, b->z, angle);
|
b->y, b->z, angle, RadToDeg(angle));
|
||||||
return angle;
|
return angle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline D3DVALUE AngleBetweenVectorsDeg (const D3DVECTOR *a, const D3DVECTOR *b)
|
||||||
|
{
|
||||||
|
return RadToDeg(AngleBetweenVectorsRad(a, b));
|
||||||
|
}
|
||||||
|
|
||||||
/* calculates vector between two points */
|
/* calculates vector between two points */
|
||||||
static inline D3DVECTOR VectorBetweenTwoPoints (const D3DVECTOR *a, const D3DVECTOR *b)
|
static inline D3DVECTOR VectorBetweenTwoPoints (const D3DVECTOR *a, const D3DVECTOR *b)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user