質問

この写真を見てください:

enter image description here

私は2DポイントであるP1、P2、およびセンターを知っています。また、角度p1センター-p2と半径rを知っています。

Canvasの関数arc()を使用して、ARCの充填部分のみを描画するにはどうすればよいですか?

編集

私が本当にする必要があるのは、2ポイントと角度を与えられて、P1センター-P2角度が与えられた角度になるように、これら2ポイントの間に湾曲したラインを描画することです。

私がしていることは、それらの2つのポイントがある中心と回界の半径を計算することです。今、私はP1とP2に結合し、与えられた角度を持つラインを描く必要があります。これは、回線の中心を計算するための私の機能です(適切に機能します)

function getCenter(v0x, v0y, v1x, v1y, curve) {
    // result = p0
    resx = parseFloat(v0x);
    resy = parseFloat(v0y);

    // tmpvec = (p1 - p0) * .5
    tmpx = (v1x - v0x) / 2;
    tmpy = (v1y - v0y) / 2;

    // result += tmpvec
    resx = resx + tmpx;
    resy = resy + tmpy;

    // rotate 90 tmpvec
    tmptmpx = tmpx;
    tmptmpy = tmpy;
    tmpy = -tmptmpx;
    tmpx = tmptmpy;

    // tmpvec *= 1/tan(c/2)
    tmpx *= 1/Math.tan(curve/2);
    tmpy *= 1/Math.tan(curve/2);

    // return res + tmpvec
    return [resx+tmpx, resy+tmpy];
}

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top