如何使用三角函数绘制椭圆曲线?

时间:2012-05-20 20:24:20

标签: java trigonometry

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分: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;
    }
}

您应该查看需要绘制的数字的参数公式:

Ellipse