span8
span4
我在实际工作昨天在C#中类似的东西,也许下面的代码将帮您计算。@takashi在说明该3个以后的坐标足以确定在第二角坐标,你可以用自己的方式为正确的。假设我们有6点坐标X1,Y1,X2,Y2,X3,Y3:
//确定线段作为载体。VAR = VX1 X2 - X1;VAR = VY1 Y2 - Y1;VAR = VX2 X3 - X2;VAR = VY2 Y3 - Y2;//计算向量长度。VAR lengthSegment1 = Math.Sqrt((VX1 * VX1)+(VY1 * VY1));VAR lengthSegment2 = Math.Sqrt((VX2 * VX2)+(VY2 * VY2));//两个向量之间的点积。VAR角= Math.Acos(((VX1 * VX2)+(VY1 * VY2))/(lengthSegment1 * lengthSegment2));//在NaN的两条线段是共线的发生。如果(double.IsNaN(角度)){返回0;} //交叉产物以确定线路点3的侧面是,相较于线P1,P2。VAR =左(VX1 *(Y3 - Y1)) - (VY1 *(×3 - X 1))> 0;回剩下什么?-angle:角度;
希望这有助于解决您的问题。需要注意的是,答案是弧度,不度。另外,不要忘记,如果你想各个角落的角度,你将需要添加第二个坐标后的最终的坐标,否则您将无法计算你的起点和终点。
假设每个顶点的角度可以基于关于线连续3个坐标(现有,中,后续的)来计算。这个数据流为每个顶点提取3个坐标。
然后,计算角度。虽然根据“角度”的定义所要求的数学表达式可能会有所不同,但我认为在任何情况下都可以根据连续的3个坐标进行计算。
©2019安全亚搏在线软件公司|法律