0

次のようなランダムな曲線を作成する必要があります。

ランダムな曲線

この図には、次のようにマークされた 3 つの例があります。

  1. 赤い楕円は曲線の始点で、
  2. 青い楕円は終わりを示しています。
  3. それらの間には、緑色の楕円でマークされたポイントがあります。

これらのいずれかを作成した後、前の曲線の各ポイントに対して別の小さな曲線を作成する必要があるため、ポイントのみを使用できます。sin 関数や cos 関数で試してみましたが、始点と終点の両方で x 点または y 点が同じ場合にのみ機能します。

Graphics2D と Point を使用してこれを実現する方法を知っている人はいますか?

4

1 に答える 1

3

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
于 2012-12-18T18:13:47.477 に答える