Как нарисовать только эту часть дуги?

Взгляните на это изображение:

enter image description here

Я знаю p1, p2 и центр, которые являются 2d точками. Я также знаю угол p1-center-p2 и радиус r.

Как я могу нарисовать только заполненную часть дуги с помощью функции arc () холста?

РЕДАКТИРОВАТЬ

Что мне действительно нужно сделать, так это, учитывая 2 точки и угол, нарисовать изогнутую линию между эти 2 точки такие, что угол p1-center-p2 является заданным углом.

Что я делаю, так это вычисляю центр и радиус окружности, в которой есть эти 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];
}
6
задан Jonas 13 December 2011 в 17:29
поделиться