-1

以下に添付されている画像に示すように、開いた円を描く必要があります 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の終点まで円弧を描画して、同様に色の弧..

4

1 に答える 1

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>]

ここに画像の説明を入力

于 2012-08-09T12:03:00.283 に答える