вычислить среднюю точку на пути ar c, используя 2 точки и радиус дуги - PullRequest
0 голосов
/ 09 июля 2020

найти среднюю точку M пути ar c от A до B:

диаграмма:

https://i.imgur.com/KB7EqBv.png

у меня есть:

  1. точка A (x, y)
  2. точка B (x, y)
  3. радиус арки c

Я пробовал следующий код, но getPointAtLength устарел.

var myarc = document.getElementById("myarc");

        // Get the length of the path
        var pathLen = myarc.getTotalLength();
        console.log(pathLen);
        // How far along the path to we want the position?
        var pathDistance = pathLen * 0.5;
        console.log(pathDistance);
        // Get the X,Y position
        var midpoint = myarc.getPointAtLength(pathDistance)
        console.log(myarc.getAttribute("d"));
        console.log(midpoint);

1 Ответ

0 голосов
/ 09 июля 2020

Геометрия c расчет:

Вычислить вектор

AB = B - A   (AB.x = B.x - A.x, similar for Y)

Его длина

lAB = sqrt(AB.x*AB.x + AB.y*AB.y)

Нормализованный вектор

uAB = AB / lAB

Средняя точка хорды

mAB = A + AB/2

Значение стрелки

F = R - sqrt(R*R - lAB*lAB/4) 

Теперь середина ар c:

P.x = M.x - mAB.Y * F
P.y = M.y + mAB.X * F

Обратите внимание, что есть две точки (вам нужно знать ориентация центра круга относительно AB), для второго поменять знаки второго члена

...