极角排序

向量叉积

平面向量中,给定两个向量 \((x_0,y_0),(x_1,y_1)\),向量叉积定义为 \(x_0y_1-y_0x_1\),如果这个值为负数,那么从第一个向量旋转到第二个向量是顺时针,反之则是逆时针,如果两个向量共线,则叉积为 \(0\),注意这里旋转的角度是两个向量的夹角。

极角排序

选定一个点作为极点,一条射线作为极轴,可以用角度和到极点的长度唯一的表示改平面内一个点。\(x\) 轴负半轴上的点的角度定义为 \(\pi\)

所谓极角排序,就是先按角度排序,然后按照

\(\text{atan2(x,y)}\) 函数

\(\text{atan2(x,y)}\) 函数返回向量 \((x,y)\)\(x\) 轴正半轴的夹角,注意这个角有正有负,所以这个函数的值域应该为 \((-\pi,\pi]\),这个函数的值域也说明,与 \(x\) 轴正半轴方向相反的向量的角度被认为是 \(\pi\)

所以我们可以直接把

posted @ 2023-07-13 21:17  NuclearReactor  阅读(40)  评论(0编辑  收藏  举报