1514{
1516 double angle;
1517
1518 memset(&p1, 0,
sizeof(
POINT3D));
1519 memset(&p2, 0,
sizeof(
POINT3D));
1520 memset(&n, 0,
sizeof(
POINT3D));
1521
1524 angle = M_PI_4;
1526
1527 CU_ASSERT_DOUBLE_EQUAL(n.
x, 0.707107, 0.00001);
1528
1529 angle = 2*M_PI/400000000;
1531
1532 CU_ASSERT_DOUBLE_EQUAL(n.
x, 0.999999999999999888978, 0.0000000000000001);
1533 CU_ASSERT_DOUBLE_EQUAL(n.
y, 1.57079632679489654446e-08, 0.0000000000000001);
1534
1535 angle = 0;
1537
1538 CU_ASSERT_DOUBLE_EQUAL(n.
x, 1.0, 0.00000001);
1539}
void vector_rotate(const POINT3D *v1, const POINT3D *v2, double angle, POINT3D *n)
Rotates v1 through an angle (in radians) within the plane defined by v1/v2, returns the rotated vecto...