确定一个对象是否在 2D 中其他两个对象的路径中 space

Determining whether an object is in the path of two other objects in 2D space

假设有 3 个对象由 x-y 坐标中的矩形定义。矩形可以是任何方向(不一定平行于轴)。

您将如何解决从对象 A 的角度(对象 A 可以从其矩形的任何位置看到)的角度确定对象 C 是否被对象 B 部分遮挡、完全遮挡或完全不遮挡的问题?

第二个问题:是否可以确定对象C可见的百分比?

这是我的(完全未经测试的)方法。
先考虑同样的问题,但只从一个不动点P看。

找到穿过 P 并包围矩形 B 的两条(无限)线。由于它是一个矩形,因此这两条线将是穿过 P 和 B 的每个顶点的四条线中的两条。

检查C的每个顶点是否在这两条线之间。如果 C 的任何顶点在这两条线之间,请检查它是否比 B 离 P 更近或更远。如果它比 B 更远,则至少部分地遮挡了 C。

现在对 A 的每个顶点执行此操作。如果您从 A 中的一个点 P 看到 C 的一部分,而从 A 中的不同点 P 看到 C 的不同部分,您可能会得到更复杂的结果。我将离开这取决于你如何处理。

要确定覆盖百分比,请计算您从矩形 C 与这两条线相交得到的形状并计算其面积,然后除以该形状的总面积。

我已将所有数学问题留给您自己解决,但如果您对自己的工作有任何具体问题,请随时提出。

如果添加一些图片,这个答案会很好,但我希望您在根据提供的步骤绘制自己的图表时能够理解这个答案。