package org.jzy3d.tests;
import org.junit.Assert;
import org.junit.Test;
import org.jzy3d.maths.Coord3d;
/**
* Tests cross product and AxisAngle rotation
*
* @author Florian Enner < florian @ enner.org >
* @since 01.01.14
*/
public class TestCoord3dRotate {
float delta = 1E-6f;
@Test
public void testCross() throws Exception {
Coord3d x = new Coord3d(1, 0, 0);
Coord3d y = new Coord3d(0, 1, 0);
Coord3d z = new Coord3d(0, 0, 1);
assertEqualCoord(z, x.cross(y));
}
@Test
public void rotateX() throws Exception {
Coord3d input = new Coord3d(0, 1, 0);
Coord3d axis = new Coord3d(1, 0, 0);
float angle = 90f;
Coord3d expected = new Coord3d(0, 0, 1);
assertEqualCoord(expected, input.rotate(angle, axis));
}
@Test
public void rotateY() throws Exception {
Coord3d input = new Coord3d(1, 0, 0);
Coord3d axis = new Coord3d(0, 1, 0);
float angle = 90f;
Coord3d expected = new Coord3d(0, 0, -1);
assertEqualCoord(expected, input.rotate(angle, axis));
}
@Test
public void rotateZ() throws Exception {
Coord3d input = new Coord3d(0, 1, 0);
Coord3d axis = new Coord3d(0, 0, 1);
float angle = 90f;
Coord3d expected = new Coord3d(-1, 0, 0);
assertEqualCoord(expected, input.rotate(angle, axis));
}
void assertEqualCoord(Coord3d expected, Coord3d actual) {
Assert.assertEquals(expected.x, actual.x, delta);
Assert.assertEquals(expected.y, actual.y, delta);
Assert.assertEquals(expected.z, actual.z, delta);
}
}
Ads help maintain this website.