三角形中的线段

时间:2009-11-19 10:36:36

标签: c++ geometry

我们如何检查线段是否部分或完全落入三角形内?

干杯。

4 个答案:

答案 0 :(得分:4)

从线段的终点获取线的功能。检查此线穿过三角形的任何边。

如果线段的任何部分位于三角形内部,则线条将通过一侧进入而通过另一侧进入,或者它将准确地沿三角形的一侧传递并穿过其中的两个角。

如果线穿过三角形,则将线与三角形边(或角)交叉的点与线段的端点进行比较,以查看线段是否是穿过三角形的线的一部分。 / p>

答案 1 :(得分:2)

要检查线是否完全位于三角形内,您需要检查线段的两个端点是否位于三角形内。 检查点是否在三角形内部可以使用here描述的技术完成。

检查一个线段是否与三角形部分相交有点复杂,因为检查其端点可能不够。部分交叉有两种可能的情况:

  1. 一个终点位于三角形内部,另一个终点位于
  2. 两个终点都在三角形之外,但是该段至少跨过一个三角形边。
  3. 检查1.可以通过this技术完成。检查2.可以通过检查两个段是否相交的算法来完成。如何做到的一个例子是here

答案 2 :(得分:1)

如果片段中的一个点在三角形内部=>部分地,如果两者都是=>充分

当且仅当角度AOB,BOC,COA的总和等于360度时,点O在三角形内部。

干杯,

格列勃

答案 3 :(得分:-1)

更好的算法如下:

为什么不这样做:

  • 如果线段的两个端点位于三角形内部或三角形上,则线段必须位于三角形内或内部。

检查点是否位于三角形内:

  • 站在这一点,看看三角形的每个顶点
  • 如果您以顺时针/逆时针方向查看每个顶点,那么您就在内部或外部