Javascript 如何在html画布弧中从startAngle和endAngle中找到较小的角度?

Javascript 如何在html画布弧中从startAngle和endAngle中找到较小的角度?,javascript,math,canvas,angle,Javascript,Math,Canvas,Angle,我希望总是有一个较小的角度,我不知道如何决定逆时针方向或不在html画布中绘制弧 这是我的密码 this.ctx.beginPath(); const startAngle = Math.atan2(P1.y - P2.y, P1.x - P2.x); const endAngle = Math.atan2(P3.y - P2.y, P3.x - P2.x); this.ctx.arc(P2.x, P2.y, 40, startAngle, endAngle, true); 您正在处理二

我希望总是有一个较小的角度,我不知道如何决定逆时针方向或不在html画布中绘制弧

这是我的密码

this.ctx.beginPath();

const startAngle = Math.atan2(P1.y - P2.y, P1.x - P2.x);
const endAngle = Math.atan2(P3.y - P2.y, P3.x - P2.x);

this.ctx.arc(P2.x, P2.y, 40, startAngle, endAngle, true);

您正在处理二维平面中的向量。逆时针方向由右手法则和平面外方向确定

这就是你需要的手术。如果通过将第一个矢量与第二个矢量相交得到的矢量符号为正,则角度为逆时针方向


叉积将为您提供一个标准化向量,逆时针方向为
(0,0,1)
,顺时针方向为
(0,0,-1)
。标准化叉积并查看z分量的符号。

角度越大,得到的值是多少?你得到的是0到360度的值吗?我得到的是startAngle=3.1415,endAngle=0.5743,单位是弧度,而不是度。试试这个:
endAngle-startAngle>=Math.PI
作为你最后一个参数的条件最后一行我已经尝试过了,在所有情况下都不起作用。你能附加一个片段吗?用你的
js
code和minimal
html,css
我逆时针=(P2.y-P1.y)*(P3.x-P2.x)-(P2.x-P1.x)*(P3.y-P2.y)<0;叉积将给出一个标准化向量,逆时针方向为(0,0,1),顺时针方向为(0,0,-1)。规范化叉积,并查看z分量的符号。