我的格雷厄姆扫描算法有一个问题,当我的列表有很多分数,但每次都很好,点数很少.我做了一些截图:
角度计算:
public static double angle(MyVector3D vec1, MyVector3D vec2)
{
return Math.Atan2(vec2.Y - vec1.Y, vec2.X - vec1.X) * 180 / Math.PI;
}
Run Code Online (Sandbox Code Playgroud)
极角分选点取决于最大Y点:
//bubblesort
private void sortList()
{
double temp = 0.0;
MyVector3D tempVector = new MyVector3D();
for (int i = 1; i < points.Count; i++)
{
for (int j = 1; j < points.Count - 1; j++)
{
if (angles[j] < angles[j + 1])
{
temp = angles[j + 1];
tempVector = points[j + 1];
angles[j + …Run Code Online (Sandbox Code Playgroud)