我正在创建Concave Hull
算法,我几乎完成了它。问题是我需要更改一些计算连续线之间角度的代码片段。
从水平线开始,顺时针方向。我写了一个方法,它返回这条水平线和我的线之间的角度。它工作正常。但是如何修改它以获得两条我的线之间的角度?请注意,坐标系来自左上角(屏幕上的像素),因此连续的线将创建一个多边形,因此它们以不同的顺序相互连接(因此可以将线着色转向不同的方向)。
我计算当前角度的代码在水平线和我的线之间:
private static double Angle(Vertex v1, Vertex v2, double offsetInDegrees = 0.0)
{
return (RadianToDegree(Math.Atan2(-v2.Y + v1.Y, -v2.X + v1.X)) + offsetInDegrees)%360.0;
}
public static double RadianToDegree(double radian)
{
var degree = radian * (180.0 / Math.PI);
if (degree < 0)
degree = 360 + degree;
return degree;
}