2

やなどの標準のグラフィックライブラリ関数を使用せずに、Java で楕円弧を描くにはどうすればよいですEllipse()Path()? 私が何をする必要があるかについての最も近いアイデアは、三角法を使用した楕円弧ですが、ランダムな弧しか示しておらず、それは物事が進むべき道ではありません。

私が考えている方法は、楕円を2点で指定してから、この楕円から切り取る角度を指定することです(またはその逆)。楕円の描画には Bresenham のアルゴリズムを使用しましたが、ミラーリングのために円弧には使用できません。前もって感謝します。

4

2 に答える 2

2
  1. 角度に関して、楕円のパラメトリック方程式を見つけます。
  2. 開始角度から 2 番目の角度に移動します (各 x、y ペアをプロット)。
  3. ???
  4. 利益。

楕円のパラメトリック方程式は次のとおりです。

x = cos(角度) * width/2 + xCenter

y = sin(角度) * 高さ/2 + yCenter

于 2012-05-20T20:34:44.230 に答える
1

パラメトリック方程式から見る必要があります。たとえば、円を描くには、まず円の公式を知っておく必要があります。

x^2 + y^2 = R^2

ここで、R は円の無線です。

ここで、角度 (1 から 360 まで) に基づいてこの式を記述する必要があります。円の内側の長方形の三角形に基づいて、その三角関数の式は次のようになります。

cos(t)^2 + sin(t)^2 = R^2

ここで、t は角度、cos(t) は X、sin(t) は Y になります。

したがって、円を描くには、円のラジオのみを渡す必要があります。

public static void drawCircle(int radio, double xCenter, double yCenter) {
    double t = 0;
    double xPoint;
    double yPoint;
    double xActual = xCenter;
    double yActual = yCenter + radio*sin(0);
    t += 0.01;
    while(t < 360) {
        xPoint = xCenter + radio*cos(t);
        yPoint = yCenter + radio*sin(t);
        //you should write this function based on
        //the platform you're working (Swing, AWT...)
        drawLine(xActual, yActual, xPoint, yPoint);
        t += 0.01;
        xActual = xPoint;
        yActual = yPoint;
    }
}

描画する必要がある図のパラメトリック式を確認する必要があります。

楕円

于 2012-05-20T20:41:07.177 に答える