小编Jam*_*s C的帖子

如何通过点制作直线曲线

我正在寻找一种通过多个点制作直线曲线的方法.最好使用3个点,尽管我认为为了给出进入点的线的角度的上下文,可能需要更多来给出曲线的上下文.

通常,起点P1,控制点P2和终点P3,该线应从P1弯曲到P2,然后从P2到P3弯曲.

事实上,这是我希望实现的效果的完美示例:

Irwin Hall Spline

如果我能做到这一点,我真的会永远感激!

到目前为止,在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;
    g.drawString("P2", x2, y2 - 2*d);
    g.fillRect(x2, …
Run Code Online (Sandbox Code Playgroud)

java awt splines curves

10
推荐指数
1
解决办法
1万
查看次数

标签 统计

awt ×1

curves ×1

java ×1

splines ×1