我想知道如何定义控制点,这就是我现在所做的,但它确实效率不高,曲线也不平滑。
MyPoint pointStart = list.get(0);
path.moveTo(pointStart.getLocationX(), pointStart.getLocationY());
MyPoint pointEnd = list.get(list.size() - 1);
for (int i = 1; i < list.size() - 1; i++) {
MyPoint point = list.get(i);
if (i % 3 == 0) {
MyPoint controlPoint1 = list.get(i - 2);
MyPoint controlPoint2 = list.get(i - 1);
MyPoint endPoint = point;
path.curveTo(controlPoint1.getLocationX(), controlPoint1.getLocationY(), controlPoint2.getLocationX(), controlPoint2.getLocationY(), endPoint.getLocationX(), endPoint.getLocationY());
((Graphics2D) g).draw(path);
}
}
path.lineTo(pointEnd.getLocationX(), pointEnd.getLocationY());