/** * 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; }
calculatePoint(point, 0); newPoints.add(point); calculatePoint(point, (double) i / (numSegments - 1)); newPoints.add(point); currentLength = 0; calculatePoint(point, 1); newPoints.add(point);
/** * 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; }
calculatePoint(point, 0); newPoints.add(point); calculatePoint(point, (double) i / (double) (numSegments - 1)); newPoints.add(point); currentLength = 0; calculatePoint(point, 1); newPoints.add(point);