2

如何在不使用任何标准图形库函数(如Ellipse()or )的情况下使用 Java 绘制椭圆弧Path()?我需要做的最接近的想法是Elliptical Arc using Trigonometric Method,但它只显示随机弧,这不是事情应该发展的方式。

我想的方式是:用两点指定椭圆,然后指定角度,将从这个椭圆中切出(反之亦然)。对于绘制椭圆,我使用了 Bresenham 的算法,但由于镜像,它不能用于弧。先感谢您。

4

2 回答 2

2
  1. 根据角度找到椭圆的参数方程。
  2. 从起始角度到第二个角度(绘制每个 x,y 对)。
  3. ???
  4. 利润。

椭圆的参数方程为:

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

y = sin(Angle) * height/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 回答