我想测试世界上的任何给定点是否在四边形/平面上?四边形/平面可以按任何值平移/旋转/缩放,但它仍然应该能够检测给定点是否在其上。如果四边形未应用任何旋转/缩放/平移,我还需要获取该点应该所在的位置。
例如,考虑一个大小为 100x100 的 0,0,0 的四边形,沿 z 轴旋转 45 度角。如果我的鼠标在世界上的位置在 (x, y, 0, ),我需要知道该点在当前变换中是否落在该四边形上?如果是,那么我需要知道是否没有对四边形应用任何变换,那个点会在哪里?任何代码示例都会有很大帮助
我想测试世界上的任何给定点是否在四边形/平面上?四边形/平面可以按任何值平移/旋转/缩放,但它仍然应该能够检测给定点是否在其上。如果四边形未应用任何旋转/缩放/平移,我还需要获取该点应该所在的位置。
例如,考虑一个大小为 100x100 的 0,0,0 的四边形,沿 z 轴旋转 45 度角。如果我的鼠标在世界上的位置在 (x, y, 0, ),我需要知道该点在当前变换中是否落在该四边形上?如果是,那么我需要知道是否没有对四边形应用任何变换,那个点会在哪里?任何代码示例都会有很大帮助
光线投射方法可能是最简单的:
gluUnProject()
获取要投射到场景中的光线的世界空间方向。射线的原点是相机位置。如果您对此处涉及的一些数学运算没有信心,诸如GLM之类的数学库将非常有用,它具有相应的函数,例如glm::unProject()
反转矩阵和执行您需要的所有其他转换的函数。