Unity3D - 按角度排序列表
Unity3D - Order list by angle to point
我正在尝试统一制作 2D 游戏。我想围绕列表中的一组 rigidbody2D 创建一个 convex hull。为此,我需要按照每个 rigidbody2D 与起始位置的角度对列表进行排序。有人知道我该怎么做吗?
您可以使用 LINQ 按计算值对列表进行排序。
return list.OrderBy(c =>
{
return /*ANGLE COMPUTATION*/;
}).ToList();
并且该角度计算可以是(归一化)向量之间的点积。
https://docs.unity3d.com/ScriptReference/Vector3.Dot.html
https://en.wikipedia.org/wiki/Dot_product
虽然有现成的凸包算法实现,例如这个:https://github.com/masphei/ConvexHull
我正在尝试统一制作 2D 游戏。我想围绕列表中的一组 rigidbody2D 创建一个 convex hull。为此,我需要按照每个 rigidbody2D 与起始位置的角度对列表进行排序。有人知道我该怎么做吗?
您可以使用 LINQ 按计算值对列表进行排序。
return list.OrderBy(c =>
{
return /*ANGLE COMPUTATION*/;
}).ToList();
并且该角度计算可以是(归一化)向量之间的点积。 https://docs.unity3d.com/ScriptReference/Vector3.Dot.html
https://en.wikipedia.org/wiki/Dot_product
虽然有现成的凸包算法实现,例如这个:https://github.com/masphei/ConvexHull