我需要绘制一个开放式圆圈,如下图所示 http://i49.tinypic.com/254y5bs.png 在图像中,M的长度应大于N,并且线M和N的起点是圆的中心。如何从N的终点到M绘制圆弧,使弧形看起来呈线性。 我正在使用以下代码绘制圆圈
for (int nR = N_IN_DEGREE; nR < M_IN_DEGREE && nCount < 360; nR++)
{
float fX = (float) Math.sin((float) nR * (Math.PI / 180)) + nR * 0.0008f;
float fY = (float) Math.cos((float) nR * (Math.PI / 180));
stVertexArray[nCount * 2] = fX;
stVertexArray[nCount * 2 + 1] = fY;
nCount++;
}
我从角度N_IN_DEGREE到M_IN_DEGREE得到开口圆圈。但是当我将fX的值增加nR * 0.0008f时,整个圆圈仅绘制350度,但我想要360度。 。请运行代码并查看..我的要求是我需要从单个点绘制2行n(长度0.8)和行m(长度= 1)并从n的终点到m的终点绘制一个弧并用一种颜色填充弧线。
答案 0 :(得分:0)
我无法运行您的代码,因为没有足够的信息,我无法关注您的代码。
但这是基本的想法,在python中实现。
import math
def genc(r1, r2, t1, t2, n):
dr = (r2 - r1)/n
dt = (t2 - t1)/n
x = []
y = []
for k in range(n):
r = r1 + k*dr
t = t1 + k*dt
x.append(r*math.cos(t))
y.append(r*math.sin(t))
return [x, y]
这是输出(使用matplotlib绘制)
In [43]: a = circ.genc(1.0, 0.8, math.pi/2, 2*math.pi, 60)
In [44]: plot(a[0], a[1],'ro')
Out[44]: [<matplotlib.lines.Line2D at 0xb9285d0>]