double oldDistance = mPoints.get(1).distanceTo(mPoints.get(2)); double newDistance = newPoints.get(1).distanceTo(newPoints.get(2)); controlPoint.multiply(newDistance / oldDistance); newPoints.set(0, Vector3.subtractAndCreate(mPoints.get(1), controlPoint)); oldDistance = mPoints.get(mPoints.size() - 2).distanceTo(mPoints.get(mPoints.size() - 3)); newDistance = newPoints.get(newPoints.size() - 2).distanceTo(newPoints.get(newPoints.size() - 3)); controlPoint.multiply(newDistance / oldDistance); newPoints.set(newPoints.size() - 1, Vector3.subtractAndCreate(mPoints.get(mPoints.size() - 2), controlPoint));
double periapsisRadius = mPeriapsis.distanceTo(mFocalPoint); double apoapsisRadius = periapsisRadius * (1 + mEccentricity) / (1 - mEccentricity);
@Test public void testDistanceToFromTwoPointsDoublesXyz() { final double distance1 = Vector3.distanceTo(0d, 1d, 2d, 3d, 5d, 7d); final double distance2 = Vector3.distanceTo(3d, 5d, 7d, 0d, 1d, 2d); assertEquals(7.07106781186548, distance1, 1e-14); assertEquals(7.07106781186548, distance2, 1e-14); }
/** * Returns an approximation of the length of the curve. The more segments the more precise the result. * * @param segments * @return */ public double getLength(int segments) { double totalLength = 0; mSegmentLengths = new double[segments + 1]; mSegmentLengths[0] = 0; calculatePoint(mTempPrevLen, 0); for (int i = 1; i <= segments; i++) { double t = (double) i / (double) segments; calculatePoint(mTempPointLen, t); double dist = mTempPrevLen.distanceTo(mTempPointLen); totalLength += dist; mSegmentLengths[i] = dist; mTempPrevLen.setAll(mTempPointLen); } return totalLength; }
@Test public void testDistanceToFromDoublesXyz() { final Vector3 v1 = new Vector3(0d, 1d, 2d); final Vector3 v2 = new Vector3(3d, 5d, 7d); final double distance1 = v1.distanceTo(3d, 5d, 7d); final double distance2 = v2.distanceTo(0d, 1d, 2d); assertEquals(7.07106781186548, distance1, 1e-14); assertEquals(7.07106781186548, distance2, 1e-14); }
@Test public void testDistanceToFromVector3() { final Vector3 v1 = new Vector3(0d, 1d, 2d); final Vector3 v2 = new Vector3(3d, 5d, 7d); final double distance1 = v1.distanceTo(v2); final double distance2 = v2.distanceTo(v1); assertEquals(7.07106781186548, distance1, 1e-14); assertEquals(7.07106781186548, distance2, 1e-14); }
@Test public void testDistanceToFromTwoVector3() { final Vector3 v1 = new Vector3(0d, 1d, 2d); final Vector3 v2 = new Vector3(3d, 5d, 7d); final double distance1 = Vector3.distanceTo(v1, v2); final double distance2 = Vector3.distanceTo(v2, v1); assertEquals(distance1, 7.07106781186548, 1e-14); assertEquals(distance2, 7.07106781186548, 1e-14); }
private void updateLightTransform(Camera camera) { if(mCircle == null) createLines(); mCircle.setLookAt(camera.getPosition()); mCircle.setScale(mPosition.distanceTo(camera.getPosition()) * 0.1f); mCircle.setPosition(mLight.getPosition()); mLine.setPosition(mLight.getPosition()); mLine.setOrientation(mLight.getOrientation()); }
double distance = mFrustumCentroid.distanceTo(lightBox.getMin()); Vector3 lightDirection = light.getDirectionVector().clone(); lightDirection.normalize();
double oldDistance = mPoints.get(1).distanceTo(mPoints.get(2)); double newDistance = newPoints.get(1).distanceTo(newPoints.get(2)); controlPoint.multiply(newDistance / oldDistance); newPoints.set(0, Vector3.subtractAndCreate(mPoints.get(1), controlPoint)); oldDistance = mPoints.get(mPoints.size() - 2).distanceTo(mPoints.get(mPoints.size() - 3)); newDistance = newPoints.get(newPoints.size() - 2).distanceTo(newPoints.get(newPoints.size() - 3)); controlPoint.multiply(newDistance / oldDistance); newPoints.set(newPoints.size() - 1, Vector3.subtractAndCreate(mPoints.get(mPoints.size() - 2), controlPoint));
double periapsisRadius = mPeriapsis.distanceTo(mFocalPoint); double apoapsisRadius = periapsisRadius * (1 + mEccentricity) / (1 - mEccentricity);
/** * Returns an approximation of the length of the curve. The more segments the more precise the result. * * @param segments * @return */ public double getLength(int segments) { double totalLength = 0; mSegmentLengths = new double[segments + 1]; mSegmentLengths[0] = 0; calculatePoint(mTempPrevLen, 0); for (int i = 1; i <= segments; i++) { double t = (double) i / (double) segments; calculatePoint(mTempPointLen, t); double dist = mTempPrevLen.distanceTo(mTempPointLen); totalLength += dist; mSegmentLengths[i] = dist; mTempPrevLen.setAll(mTempPointLen); } return totalLength; }
private void updateLightTransform(Camera camera) { if(mCircle == null) createLines(); mCircle.setLookAt(camera.getPosition()); mCircle.setScale(mPosition.distanceTo(camera.getPosition()) * 0.1f); mCircle.setPosition(mLight.getPosition()); mLine.setPosition(mLight.getPosition()); mLine.setOrientation(mLight.getOrientation()); }
double distance = mFrustumCentroid.distanceTo(lightBox.getMin()); Vector3 lightDirection = light.getDirectionVector().clone(); lightDirection.normalize();