您可以在此处检查鲁洛三角形的定义: https://en.wikipedia.org/wiki/Reuleaux_triangle
我一直在处理几何二维形状并进行检查,设置测试以查看它们是否与另一个形状相交,或者位于另一个形状内部(包括接触)。我测试了圆(以 Point 类型作为中心,以 double x,y 属性作为坐标,以及 double 半径定义),到目前为止,我已经了解了三角形(具有三个顶点点)、五边形(具有五个顶点点),但我发现了一个有趣的形状,称为鲁洛三角形,它由三个圆组成,圆弧边到对边顶点的距离相同。
首先,我尝试查看顶点是否在形状内部,就好像我使用边缘作为原始大圆的一部分(其顶点穿过的部分是中心),或者尝试看看我上面提到的其他形状的一部分是否与它相交(圆形比具有直边的形状更令人困惑),但我卡住了,因为我不知道如何限制角度或其他东西,所以我只能扫描要测试的弧线的这一部分,而且实际上很难设置检测相交的测试。
我试图找到从顶点到弧边中点的距离,并将其视为六边形,但小弧段中总是有更多的空间不会被包含在内。现在我不知道如何设置一种新方法来测试这个奇怪的圆三角形是否在内部/外部/相交/接触我已经找到一种测量位置关系的方法的任何形状(圆形、三角形、五边形)。
那么您对此有何想法?也许形成这个三角形的三个大圆圈会有帮助?
最佳答案
找到另一个形状与围绕鲁洛三角形 A 角的圆的交点,以及位于 A 周围圆内的另一个形状的顶点(这就是下图中的 4 个黑点) 。
然后检查这些点中是否有任何点位于 AB 线的右侧和 AC 线的左侧(即图像中的红色部分;4 个黑点中的 2 个位于该位置,因此形状相交)。
对 B 和 C 周围的圆执行相同的操作。这将为您提供鲁洛三角形和其他形状的所有交点,以及鲁洛三角形内的其他形状的所有顶点。
此外,您应该检查角 A、B 和 C 是否位于另一个形状内,以防整个鲁洛三角形位于另一个形状内。
应该可以通过组合已有的圆形和三角形函数(部分)来做到这一点。
关于algorithm - 检查鲁洛三角形是否在 C 中的三角形/五边形/圆形的内部/外部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52674687/