退役前的做题计划1

反正也要退役了,不如写一下最近做了什么题目(主要是表格不好写)

Projection

给你一条直线,求点在直线上的投影.

直接用(dot)把直线变成单位向量然后做就行了.

Reflection

给你一条直线,求点对于直线的对称点.

考虑我们已经用(projection)求出来了投影,然后直接那点与点做对称点即可.

Counter-Clockwise

给你两条线段,判断它们的位置关系.

直接用叉积,点积和长度判就可以了.

Parallel/Orthogonal

给你两条直线,判断它们是否正交,平行,(otherwise).

直接点积叉积判一下就行了.

Intersection

给你两条线段,判断它们是否有交.

直接用叉积判断即可,注意一些细节.

Cross Point

给你两条线段,求这两个线段的交点.

直接求直线交点然后特殊判断一下即可.

Distance

给你两条直线,求它们的距离.

大力讨论八种情况就行了.

Area

给你一个多边形(不一定凸),求这个多边形的面积.

直接一个一个叉积算就行了,因为叉积算的是有向面积,所以直接叉没问题.

Is-Convex

给你一个多边形,判断这个多边形是否是凸多边形,不要求严格凸.

直接枚举边然后叉积计算即可.

Polygon-Point-Containment

给你一个多边形,试判断一个点在多边形内,多边形上还是多边形外.

直接引射线,然后特殊判断一下相交的情况以及线段过点,线段过线的情况即可.

Convex Hull

求一个凸包,然后满足逆时针顺序,然后尽量让(y)先小,再让(x)小.

直接按照平面序排序,然后叉积算即可.

原文地址:https://www.cnblogs.com/mleautomaton/p/11281827.html