Javascript 使用路径弧'A'命令绘制椭圆

Javascript 使用路径弧'A'命令绘制椭圆,javascript,svg,Javascript,Svg,我在下面写了使用路径弧命令生成椭圆。但我使用的是aarc命令。我想切换到命令。因为它取决于相对位置(根据评论,假设是错误的) 我尝试给出直径值,但它生成的是随机形状。请帮我换一下 函数getEclipsePath(开始、结束){ var rx=(结束点x-开始点x)*0.5; var ry=(end.y-start.y)*0.5; var d=rx*2; 返回“M”+start.x++(start.y+ry)+“a”+rx+++ry++“0 1 1”+d++“0 a”+rx++“+ry++”0

我在下面写了使用路径弧命令生成椭圆。但我使用的是
a
arc命令。我想切换到
命令。因为它取决于相对位置(根据评论,假设是错误的)

我尝试给出直径值,但它生成的是随机形状。请帮我换一下

函数getEclipsePath(开始、结束){ var rx=(结束点x-开始点x)*0.5; var ry=(end.y-start.y)*0.5; var d=rx*2; 返回“M”+start.x++(start.y+ry)+“a”+rx+++ry++“0 1 1”+d++“0 a”+rx++“+ry++”0 1 1++-d++“0 z”; } var-str=getEclipsePath(100,100,70,50); var test=document.getElementById('test'); var点; document.addEventListener('mousedown',函数(事件){ 点={ x:event.clientX, y:event.clientY } }); document.addEventListener('mousemove',函数(事件){ 变量目标={ x:event.clientX, y:event.clientY } 如果(点){ var str=getEclipsePath(点、目标); document.getElementById('test').setAttribute('d',str); } }); document.addEventListener('mouseup',函数(事件){ 点=空; });
body,
html{
身高:100%;
宽度:100%;
保证金:0;
填充:0
}
svg{
身高:100%;
宽度:100%
}


你的问题没有真正意义,通过M的弧的初始位置是绝对的,a值是相对的(然后是相互的)。@RobertLongson我同意你的观点。也许我的假设是错误的,但我的问题是如何在这里使用
A
命令而不是
A