我正在寻找一种通过多个点制作直线曲线的方法.最好使用3个点,尽管我认为为了给出进入点的线的角度的上下文,可能需要更多来给出曲线的上下文.
通常,起点P1,控制点P2和终点P3,该线应从P1弯曲到P2,然后从P2到P3弯曲.
事实上,这是我希望实现的效果的完美示例:
如果我能做到这一点,我真的会永远感激!
到目前为止,在Java中,我尝试过玩QuadCurve2D.Double,Cub icCurve2D.Double和Path2D.Double(使用带有Path2D.Double的curveTo),但无济于事 – 绘制的曲线甚至不接近通过指定的控制点.
这是我到目前为止尝试过的方法的图像:
这是我用来生成图像中的点和曲线的代码:
Graphics2D g = (Graphics2D) window.getGraphics();
g.setColor(Color.blue);
int d = 4;
// P0
int x0 = window.getWidth()/8;
int y0 = 250;
g.drawString("P0", x0, y0 + 4*d);
g.fillRect(x0, y0, d, d);
// P1
int x1 = (window.getWidth()/7)*2;
int y1 = 235;
g.drawString("P1", x1, y1 + 4*d);
g.fillRect(x1, y1, d, d);
// P2
int x2 = (window.getWidth()/2);
int y2 = 200;