相关疑难解决方法(0)

如何判断一个点是否在一条线的右侧或左侧

我有一套积分.我想把它们分成两组.为此,我选择两个点(ab)并在它们之间绘制一条虚线.现在我想让一行中从这一行留下的所有点和另一组中从该行开始的那些点.

如何判断任何给定点z是左侧还是右侧?我试图计算azb之间的角度- 小于180的角度在右侧,大于180在左侧 - 但由于ArcCos的定义,计算的角度总是小于180°.是否有公式计算大于180°的角度(或选择右侧或左侧的任何其他公式)?

c# math geometry convex-hull

112
推荐指数
8
解决办法
11万
查看次数

NumPy/OpenCV 2:如何裁剪非矩形区域?

我有一组形成一个形状的点(闭合折线).现在我想从这个形状内的一些图像中复制/裁剪所有像素,剩下的就是黑色/透明.我该怎么做呢?

例如,我有这个:

在此输入图像描述

我想得到这个:

在此输入图像描述

python opencv numpy image-processing

32
推荐指数
2
解决办法
3万
查看次数

测试多边形是简单还是复杂

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

示例复杂多边形图像

有没有比检查时间复杂度为O(N 2)的每一对更好的解决方案?

algorithm geometry polygon computational-geometry

15
推荐指数
2
解决办法
1万
查看次数

如何确定三角形网格是否凹陷?

给定一个三维三角形网格,我怎样才能知道它是凸面还是凹面?有算法检查吗?如果是这样,定义公差范围以忽略小凹陷将是有用的.

凹凸的插图

图片来源:http://www.rustycode.com/tutorials/convex.html

c++ algorithm mesh convex non-convex

6
推荐指数
1
解决办法
2941
查看次数

测试多边形是否非常简单

我无法想出一种算法来检测弱的简单多边形(即允许边接触但不能交叉的多边形).目前我只是检查每一方之间的交叉点 - 这是我呼吁所有非相邻方的功能.这样,只允许简单的多边形(根本不接触).多边形是点的向量.

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)

c++ algorithm geometry polygons

5
推荐指数
1
解决办法
602
查看次数

找到一组交叉点中的所有四边形

我想取一组线的所有交点,找到它们创建的所有凸四边形.我不确定是否有适合这种情况的算法,或者我需要循环创建自己的算法.

我有一系列线条和所有交叉点.

线和交叉点:

在此输入图像描述

示例四边形1:

在此输入图像描述

示例四边形2 在此输入图像描述

在这种情况下,我会提出8个四边形.

我怎样才能做到这一点?如果没有我可以为此实现的算法,我如何检查每个交叉点与其他交叉点以确定它们是否形成凸四边形?

language-agnostic theory math geometry

3
推荐指数
1
解决办法
436
查看次数