退役前的做题计划1
反正也要退役了,不如写一下最近做了什么题目(主要是表格不好写)
Projection
给你一条直线,求点在直线上的投影.
直接用\(dot\)把直线变成单位向量然后做就行了.
Reflection
给你一条直线,求点对于直线的对称点.
考虑我们已经用\(projection\)求出来了投影,然后直接那点与点做对称点即可.
Counter-Clockwise
给你两条线段,判断它们的位置关系.
直接用叉积,点积和长度判就可以了.
Parallel/Orthogonal
给你两条直线,判断它们是否正交,平行,\(otherwise\).
直接点积叉积判一下就行了.
Intersection
给你两条线段,判断它们是否有交.
直接用叉积判断即可,注意一些细节.
Cross Point
给你两条线段,求这两个线段的交点.
直接求直线交点然后特殊判断一下即可.
Distance
给你两条直线,求它们的距离.
大力讨论八种情况就行了.
Area
给你一个多边形(不一定凸),求这个多边形的面积.
直接一个一个叉积算就行了,因为叉积算的是有向面积,所以直接叉没问题.
Is-Convex
给你一个多边形,判断这个多边形是否是凸多边形,不要求严格凸.
直接枚举边然后叉积计算即可.
Polygon-Point-Containment
给你一个多边形,试判断一个点在多边形内,多边形上还是多边形外.
直接引射线,然后特殊判断一下相交的情况以及线段过点,线段过线的情况即可.
Convex Hull
求一个凸包,然后满足逆时针顺序,然后尽量让\(y\)先小,再让\(x\)小.
直接按照平面序排序,然后叉积算即可.