Javascript 使用2个点和圆弧半径计算路径圆弧上的中点
查找从A到B的路径弧的中点M: 图表: 我有:Javascript 使用2个点和圆弧半径计算路径圆弧上的中点,javascript,math,svg,geometry,computational-geometry,Javascript,Math,Svg,Geometry,Computational Geometry,查找从A到B的路径弧的中点M: 图表: 我有: A点(x,y) B点(x,y) 弧半径 我尝试了以下代码,但getPointAtLength不推荐使用 var myarc=document.getElementById(“myarc”); //获取路径的长度 var pathLen=myarc.getTotalLength(); console.log(pathLen); //我们要在这条路上走多远? var pathDistance=pathLen*0.5; console.log(路径距离
var myarc=document.getElementById(“myarc”);
//获取路径的长度
var pathLen=myarc.getTotalLength();
console.log(pathLen);
//我们要在这条路上走多远?
var pathDistance=pathLen*0.5;
console.log(路径距离);
//得到X,Y的位置
var midpoint=myarc.getPointAtLength(路径距离)
log(myarc.getAttribute(“d”);
控制台日志(中点);
几何计算:
С演算载体
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 + B)/2
箭头值
F = R - sqrt(R*R - lAB*lAB/4)
现在是弧中:
M.x = mAB.x - uAB.Y * F
M.y = mAB.y + uAB.X * F
请注意,有两点(您需要知道圆心方向与AB的关系),第二点更改第二项的符号它只是移动到基类。我已编辑文档以删除弃用警告。是,帖子现在已更改。非常感谢你的回答。getPointAtLength未被弃用,因此我可以使用以前的代码。什么是
M.x
和M.y
?@doox911更正公式。