下面列出了java.awt.geom.Line2D#ptLineDistSq ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public double getMeanDistance ()
{
if (line == null) {
computeLine();
}
if (meanDistance == null) {
Line2D straight = new Line2D.Double(startPoint, stopPoint);
double totalDistSq = 0;
int pointCount = points.size() - 2; // Only intermediate points!
for (int i = 1, iMax = pointCount; i <= iMax; i++) {
totalDistSq += straight.ptLineDistSq(points.get(i));
}
if (pointCount > 0) {
meanDistance = Math.sqrt(totalDistSq / pointCount);
}
}
return (meanDistance != null) ? meanDistance : 0;
}
/**
* Computation of rotation from first to last point, with middle as approximate
* middle point of the curve.
*
* @param line straight line from curve start to curve stop
* @param middle middle point of curve
* @return central rotation angle (in radians) from curve start to curve stop.
*/
public static double rotation (Line2D line,
Point2D middle)
{
double dx = line.getX2() - line.getX1();
double dy = line.getY2() - line.getY1();
double halfChordLengthSq = ((dx * dx) + (dy * dy)) / 4;
double sagittaSq = line.ptLineDistSq(middle);
return 4 * Math.atan(Math.sqrt(sagittaSq / halfChordLengthSq));
}
@Override
public boolean isHitAt(Point localPoint) {
return Line2D.ptLineDistSq(from.x, from.y, to.x, to.y, localPoint.x, localPoint.y) <= BORDER * BORDER;
}
@Override
public boolean isHitAt(Point localPoint) {
return Line2D.ptLineDistSq(from.x, from.y, to.x, to.y, localPoint.x, localPoint.y) <= BORDER * BORDER;
}
@Override
public boolean isHitAt(Point localPoint) {
return Line2D.ptLineDistSq(from.x, from.y, to.x, to.y, localPoint.x, localPoint.y) <= BORDER * BORDER;
}
@Override
public boolean isHitAt(Point localPoint) {
return Line2D.ptLineDistSq(from.x, from.y, to.x, to.y, localPoint.x, localPoint.y) <= BORDER * BORDER;
}
@Override
public boolean isHitAt(Point localPoint) {
return Line2D.ptLineDistSq(from.x, from.y, to.x, to.y, localPoint.x, localPoint.y) <= BORDER * BORDER;
}
@Override
public boolean isHitAt(Point localPoint) {
return Line2D.ptLineDistSq(from.x, from.y, to.x, to.y, localPoint.x, localPoint.y) <= BORDER * BORDER;
}
@Override
public boolean isHitAt(Point localPoint) {
return Line2D.ptLineDistSq(from.x, from.y, to.x, to.y, localPoint.x, localPoint.y) <= BORDER * BORDER;
}
@Override
public boolean isHitAt(Point localPoint) {
return Line2D.ptLineDistSq(from.x, from.y, to.x, to.y, localPoint.x, localPoint.y) <= BORDER * BORDER;
}