我有一套积分.我想把它们分成两组.为此,我选择两个点(a和b)并在它们之间绘制一条虚线.现在我想让一行中从这一行留下的所有点和另一组中从该行开始的那些点.
如何判断任何给定点z是左侧还是右侧?我试图计算azb之间的角度- 小于180的角度在右侧,大于180在左侧 - 但由于ArcCos的定义,计算的角度总是小于180°.是否有公式计算大于180°的角度(或选择右侧或左侧的任何其他公式)?
我有一组形成一个形状的点(闭合折线).现在我想从这个形状内的一些图像中复制/裁剪所有像素,剩下的就是黑色/透明.我该怎么做呢?
例如,我有这个:

我想得到这个:

对于定义为(x,y)点序列的多边形,如何检测它是否复杂?复杂多边形与自身交叉,如图所示:

有没有比检查时间复杂度为O(N 2)的每一对更好的解决方案?
给定一个三维三角形网格,我怎样才能知道它是凸面还是凹面?有算法检查吗?如果是这样,定义公差范围以忽略小凹陷将是有用的.

我无法想出一种算法来检测弱的简单多边形(即允许边接触但不能交叉的多边形).目前我只是检查每一方之间的交叉点 - 这是我呼吁所有非相邻方的功能.这样,只允许简单的多边形(根本不接触).多边形是点的向量.
bool linesIntersect(const point &a1, const point &a2, const point &b1, const point &b2) {
// Solve intersection of parametric lines using inverse matrix
// The equation of the parametric lines are line1 = (a2 - a1)*s + a1
// and line2 = (b2 - b1)*t + b1, where a1, a2, etc. are vectors.
// Two equations can be produced from the two components, and these
// this system of two equations can be solved for s and …Run Code Online (Sandbox Code Playgroud) 我想取一组线的所有交点,找到它们创建的所有凸四边形.我不确定是否有适合这种情况的算法,或者我需要循环创建自己的算法.
我有一系列线条和所有交叉点.
线和交叉点:
示例四边形1:
在这种情况下,我会提出8个四边形.
我怎样才能做到这一点?如果没有我可以为此实现的算法,我如何检查每个交叉点与其他交叉点以确定它们是否形成凸四边形?