如何通过从给定轴vector逆时针增加角度对点/vector数组进行排序?例如:如果0是轴vector,我希望排序后的数组按2、3、1的顺序排列。我有理由确定可以使用交叉产品、自定义比较器和std::sort()来做到这一点。 最佳答案 是的,您可以使用基于叉积的自定义比较器来实现。唯一的问题是一个简单的比较器不具有传递性。所以需要一个额外的步骤,以防止引用任一侧的角度被认为是接近的。这将比任何涉及trig的方法快得多。甚至都不需要先标准化。这是比较器:classangle_sort{pointm_origin;pointm_dre
如何通过从给定轴vector逆时针增加角度对点/vector数组进行排序?例如:如果0是轴vector,我希望排序后的数组按2、3、1的顺序排列。我有理由确定可以使用交叉产品、自定义比较器和std::sort()来做到这一点。 最佳答案 是的,您可以使用基于叉积的自定义比较器来实现。唯一的问题是一个简单的比较器不具有传递性。所以需要一个额外的步骤,以防止引用任一侧的角度被认为是接近的。这将比任何涉及trig的方法快得多。甚至都不需要先标准化。这是比较器:classangle_sort{pointm_origin;pointm_dre