我将如何检查正方形区域内是否存在三角形多边形?(IE 描绘了一个覆盖一组二维多边形的正方形网格。)
或者更好的是,我如何确定这些正方形之一被给定多边形(如果有的话)占据的百分比。
我以前使用过directx,但似乎无法在他们的文档中找到正确的功能组合。- 虽然感觉光线追踪的东西可能是相关的。
我使用 c++,如果有帮助可以使用 directx。感谢您的任何建议或想法。:)
我将如何检查正方形区域内是否存在三角形多边形?(IE 描绘了一个覆盖一组二维多边形的正方形网格。)
或者更好的是,我如何确定这些正方形之一被给定多边形(如果有的话)占据的百分比。
我以前使用过directx,但似乎无法在他们的文档中找到正确的功能组合。- 虽然感觉光线追踪的东西可能是相关的。
我使用 c++,如果有帮助可以使用 directx。感谢您的任何建议或想法。:)
您可能会考虑使用裁剪器库来进行通用 2D 多边形裁剪、面积计算、相交测试等。它相当紧凑且易于处理,并且有很好的使用示例。
它是 Vatti 裁剪算法的一种实现,可以处理许多奇怪的边缘情况(这对你来说可能是多余的)
有几种方法可以做到这一点,它本质上是一个剪裁问题。
一种方法是使用 Cohen-Sutherland 算法:http ://en.wikipedia.org/wiki/Cohen%E2%80%93Sutherland
您将运行该算法 3 次(每个三角形边缘一次)。
然后,您可以通过计算 area(clipped_triangle) / area(square_region) 找到所占面积的百分比。
您可能会考虑使用裁剪器库来进行通用 2D 多边形裁剪、面积计算、相交测试等。它相当紧凑且易于处理,并且有很好的使用示例。
它是 Vatti 裁剪算法的一种实现,可以处理许多奇怪的边缘情况(这对你来说可能是多余的)