如何使用Java绘制椭圆弧而不使用任何标准图形库函数,例如Ellipse()
或Path()
?
关于我需要做的最接近的想法是Elliptical Arc using Trigonometric Method,但它只显示随机弧,这不应该是应该去的方式。
我想的方法是:用两个点指定椭圆,然后指定角度,该角度将从该椭圆切割(反之亦然)。 对于绘制椭圆,我使用了Bresenham的算法,但由于镜像,它不能用于弧。 提前谢谢。
答案 0 :(得分:2)
椭圆的参数方程是:
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;
}
}
您应该查看需要绘制的数字的参数公式: