4 Vector2指向左上角右下角左下角

时间:2015-02-08 17:34:59

标签: c# xna

我在列表中有4个Vector2,我想将它们排序为

Vector2 topleft
Vector2 topright
Vector2 bottomleft
Vector2 bottomright

我试过比较距离但没有成功。 我想快速解决我的问题

1 个答案:

答案 0 :(得分:1)

你可以将向量放在数组中并创建一个比较器方法,现在你可以根据自己的比较器方法对数组进行排序:

     public Vector2[] directions=new Vector2[4];// put your vectors here


     void Sort() 
     {
      Array.Sort(directions, Vector2Compare);    
     }


     private int Vector2Compare(Vector2 value1, Vector2 value2)
     {
         // NOTE: THESE DEPENDS ON HOW YOU EVALUATE TOP/LEFT/RIGHT/BOTTOM , X and Y  
         if (value1.x < value2.x)
         {
             return -1;
         }
         else if(value1.x == value2.x)
         {
             if(value1.y < value2.y)
             {
                 return -1;
             }
             else if(value1.y == value2.y)
             {
                 return 0;
             }
             else
             {
                 return 1;
             }
         }
         else
         {
             return 1;
         }
     }