gpt4 book ai didi

algorithm - 检查一个reuleaux三角形是否在C中的三角形/五边形/圆的内部/外部

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:46:22 29 4
gpt4 key购买 nike

您可以在此处检查 Reuleaux 三角形的定义: https://en.wikipedia.org/wiki/Reuleaux_triangle

我一直在处理 2D 几何形状并进行检查,设置测试以查看它们是否与另一个相交,或者在另一个形状内(包括触摸)。我已经测试了圆(以 Point 类型定义为中心,以 double x,y 属性作为坐标,以及 double 半径),三角形(具有三个顶点 Point),五边形(具有五个顶点 Point),但我发现了一个有趣的形状,称为 reuleaux 三角形,它由三个圆圈组成,弧边到对边顶点的距离相等。

首先,我尝试查看顶点是否在形状内部,就好像我将边用作原始大圆的一部分,顶点穿过的圆是中心,或者尝试如果我上面提到的其他形状的一部分与它相交(圆比直边的形状更令人困惑),但我卡住了,因为我不知道如何限制角度之类的,所以我只能扫描要测试的这部分弧,实际上很难设置检测相交的测试。

我试图找出从顶点到弧边中点的距离,并将其视为六边形,但小圆弧部分总是有更多空间不会被包括在内。现在我不知道要设置一种新方法来测试这个奇怪的圆形三角形是否会在内部/外部/相交/接触我已经找到一种测量位置关系的方法的任何形状(圆形、三角形、五边形)。

那么你对此有何看法?也许构成这个三角形的三个大圆圈会有所帮助?

最佳答案

找到另一个形状与 Reuleaux 三角形角 A 周围的圆的交点,以及位于 A 周围的圆内的另一个形状的顶点(这些是下图中的 4 个黑点) .

然后检查这些点中的任何一个是否位于线 AB 的右侧和线 AC 的左侧(即图像中的红色扇区;4 个黑点中有 2 个位于线 AB 的右侧,因此形状相交)。

Reuleaux Triangle and Pentagon

对围绕 B 和 C 的圆圈执行相同的操作。这将为您提供 Reuleaux 三角形和其他形状的所有交点,以及其他形状在 Reuleaux 三角形内的所有顶点。

此外,您还应检查角 A、B 和 C 是否位于另一个形状内,以防整个 Reuleaux 三角形位于另一个形状内。

应该可以通过组合(部分)您已有的用于圆形和三角形的函数来做到这一点。

关于algorithm - 检查一个reuleaux三角形是否在C中的三角形/五边形/圆的内部/外部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52674687/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com