3233343536373839404142
} public Point locate(Figure owner) { PolyLineFigure plf = (PolyLineFigure)owner; // guard against changing PolyLineFigures -> temporary hack if (fIndex < plf.pointCount()) { return ((PolyLineFigure)owner).pointAt(fIndex); } return new Point(0, 0); } }
5253545556575859606162
int cy = -1; long len = Long.MAX_VALUE; // Try for points along edge for (int i = 0; i < p.pointCount()-1; i++) { Point p1 = p.pointAt(i); Point p2 = p.pointAt(i+1); Point chop = Geom.intersect(p1.x, p1.y, p2.x,
7576777879808182838485
} } // if none found, pick closest vertex //if (len == Long.MAX_VALUE) { { // try anyway for (int i = 0; i < p.pointCount(); i++) { Point pp = p.pointAt(i); long l = Geom.length2(pp.x, pp.y, from.x, from.y); if (l < len) { len = l; cx = pp.x;