我需要创建一个像这样的随机曲线:
在这张图中有3个例子,标记如下:
- 红色椭圆是曲线的起点,
- 蓝色椭圆表示结束。
- 它们之间是用绿色椭圆标记的点。
我只能使用 Point,因为在制作完其中一个之后,我需要为前一条曲线中的每个 Point 创建另一条小曲线。我尝试使用 sin 函数或 cos 函数,但只有当起点和终点的 x 或 y 点相同时才有效。
有谁知道如何使用 Graphics2D 和 Point 来实现这一点?
我需要创建一个像这样的随机曲线:
在这张图中有3个例子,标记如下:
我只能使用 Point,因为在制作完其中一个之后,我需要为前一条曲线中的每个 Point 创建另一条小曲线。我尝试使用 sin 函数或 cos 函数,但只有当起点和终点的 x 或 y 点相同时才有效。
有谁知道如何使用 Graphics2D 和 Point 来实现这一点?
您应该使用Bezier Curves。
如果您对曲线上的每个 x 值都有一个 y 值,那么您可以查看apache commons implementation。您在这里得到的是一个PolynomialSplineFunction,您可以使用它来计算曲线上的任何点。
SplineInterpolator interpolator = new SplineInterpolator();
PolynomialSplineFunction f
= interpolator.interpolate(xValues, yValues); //red and blue dots
f.value(4.0); //gets y-value for x = 4.0