List of usage examples for org.apache.commons.math3.geometry.euclidean.threed Vector3D ZERO
Vector3D ZERO
To view the source code for org.apache.commons.math3.geometry.euclidean.threed Vector3D ZERO.
Click Source Link
From source file:org.orekit.utils.AngularCoordinatesTest.java
@Test public void testNoCommute() { AngularCoordinates ac1 = new AngularCoordinates(new Rotation(0.48, 0.64, 0.36, 0.48, false), Vector3D.ZERO); AngularCoordinates ac2 = new AngularCoordinates(new Rotation(0.36, -0.48, 0.48, 0.64, false), Vector3D.ZERO);/*from w w w . j ava 2 s . co m*/ AngularCoordinates add12 = ac1.addOffset(ac2); AngularCoordinates add21 = ac2.addOffset(ac1); // the rotations are really different from each other Assert.assertEquals(2.574, Rotation.distance(add12.getRotation(), add21.getRotation()), 1.0e-3); }
From source file:org.orekit.utils.AngularCoordinatesTest.java
@Test public void testRodriguesSpecialCases() { // identity/*from w w w . j a v a2 s .c om*/ double[][] identity = new AngularCoordinates(Rotation.IDENTITY, Vector3D.ZERO, Vector3D.ZERO) .getModifiedRodrigues(1.0); for (double[] row : identity) { for (double element : row) { Assert.assertEquals(0.0, element, Precision.SAFE_MIN); } } AngularCoordinates acId = AngularCoordinates.createFromModifiedRodrigues(identity); Assert.assertEquals(0.0, acId.getRotation().getAngle(), Precision.SAFE_MIN); Assert.assertEquals(0.0, acId.getRotationRate().getNorm(), Precision.SAFE_MIN); // PI angle rotation (which is singular for non-modified Rodrigues vector) RandomGenerator random = new Well1024a(0x2158523e6accb859l); for (int i = 0; i < 100; ++i) { Vector3D axis = randomVector(random, 1.0); AngularCoordinates original = new AngularCoordinates(new Rotation(axis, FastMath.PI), Vector3D.ZERO, Vector3D.ZERO); AngularCoordinates rebuilt = AngularCoordinates .createFromModifiedRodrigues(original.getModifiedRodrigues(1.0)); Assert.assertEquals(FastMath.PI, rebuilt.getRotation().getAngle(), 1.0e-15); Assert.assertEquals(0.0, FastMath.sin(Vector3D.angle(axis, rebuilt.getRotation().getAxis())), 1.0e-15); Assert.assertEquals(0.0, rebuilt.getRotationRate().getNorm(), 1.0e-16); } }
From source file:org.orekit.utils.AngularCoordinatesTest.java
@Test public void testInverseCrossProducts() throws OrekitException { checkInverse(Vector3D.PLUS_K, Vector3D.PLUS_I, Vector3D.PLUS_J); checkInverse(Vector3D.ZERO, Vector3D.ZERO, Vector3D.ZERO); checkInverse(Vector3D.ZERO, Vector3D.ZERO, Vector3D.PLUS_J); checkInverse(Vector3D.PLUS_K, Vector3D.PLUS_K, Vector3D.PLUS_J); checkInverse(Vector3D.ZERO, Vector3D.PLUS_K, Vector3D.ZERO); checkInverse(Vector3D.PLUS_K, Vector3D.PLUS_I, Vector3D.PLUS_K); checkInverse(Vector3D.PLUS_K, Vector3D.PLUS_I, Vector3D.PLUS_I); checkInverse(Vector3D.PLUS_K, Vector3D.PLUS_I, new Vector3D(1, 0, -1).normalize()); checkInverse(Vector3D.ZERO, Vector3D.PLUS_I, Vector3D.ZERO, Vector3D.PLUS_J, Vector3D.ZERO); }
From source file:org.orekit.utils.AngularCoordinatesTest.java
@Test public void testInverseCrossProductsFailures() { checkInverseFailure(Vector3D.PLUS_K, Vector3D.ZERO, Vector3D.PLUS_J, Vector3D.PLUS_I, Vector3D.PLUS_K); checkInverseFailure(Vector3D.PLUS_K, Vector3D.ZERO, Vector3D.ZERO, Vector3D.ZERO, Vector3D.PLUS_K); checkInverseFailure(Vector3D.PLUS_I, Vector3D.PLUS_I, Vector3D.ZERO, Vector3D.MINUS_I, Vector3D.PLUS_K); checkInverseFailure(Vector3D.PLUS_I, Vector3D.PLUS_I, Vector3D.ZERO, Vector3D.PLUS_J, Vector3D.PLUS_J); checkInverseFailure(Vector3D.PLUS_I, Vector3D.PLUS_I, Vector3D.PLUS_J, Vector3D.PLUS_J, Vector3D.ZERO); checkInverseFailure(Vector3D.PLUS_I, Vector3D.PLUS_I, Vector3D.PLUS_J, Vector3D.ZERO, Vector3D.PLUS_J); }
From source file:org.orekit.utils.AngularCoordinatesTest.java
@Test public void testCancellingDerivatives() throws OrekitException { PVCoordinates u1 = new PVCoordinates( new Vector3D(-0.4466591282528639, -0.009657376949231283, -0.894652087807798), new Vector3D(-8.897296517803556E-4, 2.7825250920407674E-4, 4.411979658413134E-4), new Vector3D(4.753127475302486E-7, 1.0209400376727623E-8, 9.515403756524403E-7)); PVCoordinates u2 = new PVCoordinates( new Vector3D(0.23723907259910096, 0.9628700806685033, -0.1288364474275361), new Vector3D(-7.98741002062555E-24, 2.4979687659429984E-24, 3.9607863426704016E-24), new Vector3D(-3.150541868418562E-23, 9.856329862034835E-24, 1.5648124883326986E-23)); PVCoordinates v1 = new PVCoordinates(Vector3D.PLUS_K, Vector3D.ZERO, Vector3D.ZERO); PVCoordinates v2 = new PVCoordinates(Vector3D.MINUS_J, Vector3D.ZERO, Vector3D.ZERO); AngularCoordinates ac = new AngularCoordinates(u1, u2, v1, v2, 1.0e-9); PVCoordinates v1Computed = ac.applyTo(u1); PVCoordinates v2Computed = ac.applyTo(u2); Assert.assertEquals(0, Vector3D.distance(v1.getPosition(), v1Computed.getPosition()), 1.0e-15); Assert.assertEquals(0, Vector3D.distance(v2.getPosition(), v2Computed.getPosition()), 1.0e-15); Assert.assertEquals(0, Vector3D.distance(v1.getVelocity(), v1Computed.getVelocity()), 1.0e-15); Assert.assertEquals(0, Vector3D.distance(v2.getVelocity(), v2Computed.getVelocity()), 1.0e-15); Assert.assertEquals(0, Vector3D.distance(v1.getAcceleration(), v1Computed.getAcceleration()), 1.0e-15); Assert.assertEquals(0, Vector3D.distance(v2.getAcceleration(), v2Computed.getAcceleration()), 1.0e-15); }
From source file:org.orekit.utils.AngularCoordinatesTest.java
@Test @Deprecated // to be removed when AngularCoordinates.interpolate is removed public void testInterpolationSimple() throws OrekitException { AbsoluteDate date = AbsoluteDate.GALILEO_EPOCH; double alpha0 = 0.5 * FastMath.PI; double omega = 0.5 * FastMath.PI; AngularCoordinates reference = new AngularCoordinates(new Rotation(Vector3D.PLUS_K, alpha0), new Vector3D(omega, Vector3D.MINUS_K), Vector3D.ZERO); List<Pair<AbsoluteDate, AngularCoordinates>> sample = new ArrayList<Pair<AbsoluteDate, AngularCoordinates>>(); for (double dt : new double[] { 0.0, 0.5, 1.0 }) { sample.add(new Pair<AbsoluteDate, AngularCoordinates>(date.shiftedBy(dt), reference.shiftedBy(dt))); }//from w w w. j av a2 s .c o m for (double dt = 0; dt < 1.0; dt += 0.001) { AngularCoordinates interpolated = AngularCoordinates.interpolate(date.shiftedBy(dt), true, sample); Rotation r = interpolated.getRotation(); Vector3D rate = interpolated.getRotationRate(); Vector3D acceleration = interpolated.getRotationAcceleration(); Assert.assertEquals(0.0, Rotation.distance(new Rotation(Vector3D.PLUS_K, alpha0 + omega * dt), r), 1.1e-15); Assert.assertEquals(0.0, Vector3D.distance(new Vector3D(omega, Vector3D.MINUS_K), rate), 4.0e-15); Assert.assertEquals(0.0, Vector3D.distance(Vector3D.ZERO, acceleration), 3.0e-14); } }
From source file:org.orekit.utils.PVCoordinates.java
/** Simple constructor. * <p> Set the Coordinates to default : (0 0 0), (0 0 0), (0 0 0).</p> *//*from ww w. j a v a2 s .c om*/ public PVCoordinates() { position = Vector3D.ZERO; velocity = Vector3D.ZERO; acceleration = Vector3D.ZERO; }
From source file:org.orekit.utils.PVCoordinates.java
/** Builds a PVCoordinates triplet with zero acceleration. * <p>Acceleration is set to zero</p> * @param position the position vector (m) * @param velocity the velocity vector (m/s) *///from w w w . j a v a 2 s . co m public PVCoordinates(final Vector3D position, final Vector3D velocity) { this.position = position; this.velocity = velocity; this.acceleration = Vector3D.ZERO; }
From source file:org.orekit.utils.PVCoordinates.java
/** Builds a PVCoordinates triplet from a {@link FieldVector3D}<{@link DerivativeStructure}>. * <p>// w w w.j a va 2 s . c o m * The vector components must have time as their only derivation parameter and * have consistent derivation orders. * </p> * @param p vector with time-derivatives embedded within the coordinates */ public PVCoordinates(final FieldVector3D<DerivativeStructure> p) { position = new Vector3D(p.getX().getReal(), p.getY().getReal(), p.getZ().getReal()); if (p.getX().getOrder() >= 1) { velocity = new Vector3D(p.getX().getPartialDerivative(1), p.getY().getPartialDerivative(1), p.getZ().getPartialDerivative(1)); if (p.getX().getOrder() >= 2) { acceleration = new Vector3D(p.getX().getPartialDerivative(2), p.getY().getPartialDerivative(2), p.getZ().getPartialDerivative(2)); } else { acceleration = Vector3D.ZERO; } } else { velocity = Vector3D.ZERO; acceleration = Vector3D.ZERO; } }
From source file:org.orekit.utils.PVCoordinatesTest.java
@Test public void testToDerivativeStructureVector0() throws OrekitException { FieldVector3D<DerivativeStructure> fv = new PVCoordinates(new Vector3D(1, 0.1, 10), new Vector3D(-1, -0.1, -10), new Vector3D(10, -1.0, -100)).toDerivativeStructureVector(0); Assert.assertEquals(1, fv.getX().getFreeParameters()); Assert.assertEquals(0, fv.getX().getOrder()); Assert.assertEquals(1.0, fv.getX().getReal(), 1.0e-10); Assert.assertEquals(0.1, fv.getY().getReal(), 1.0e-10); Assert.assertEquals(10.0, fv.getZ().getReal(), 1.0e-10); checkPV(new PVCoordinates(new Vector3D(1, 0.1, 10), Vector3D.ZERO, Vector3D.ZERO), new PVCoordinates(fv), 1.0e-15);//from ww w .j av a 2s. c o m }