Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何计算C++和GLM中的边缘点最近点? 我用OpenGL和GLM开发C++中的3D碰撞管道,但是我不能计算出一个公式来计算玩家的原点到三角形的边缘段。p>_C++_Vector_Formula_Collision - Fatal编程技术网

如何计算C++和GLM中的边缘点最近点? 我用OpenGL和GLM开发C++中的3D碰撞管道,但是我不能计算出一个公式来计算玩家的原点到三角形的边缘段。p>

如何计算C++和GLM中的边缘点最近点? 我用OpenGL和GLM开发C++中的3D碰撞管道,但是我不能计算出一个公式来计算玩家的原点到三角形的边缘段。p>,c++,vector,formula,collision,C++,Vector,Formula,Collision,例如,假设顶点A和顶点B构成边,点C表示玩家原点,D是从C到边最近的点。如何计算这个呢?我知道通过得到b-a和c-a的叉积可以帮助边缘对齐,但是我需要得到三维笛卡尔空间中的坐标,而不是比较 这里有一张图表来说明我的问题 我需要找到边上的点。以GLM或类似形式的示例代码将不胜感激!这个问题与原文不同,因为这是C++语言和GLM向量数学库。 谢谢 本打算向您展示,但以下是我5秒钟的谷歌搜索: 参见示例5。甚至在c0d3z上也有haz。即使它们是Java语言。我希望你能想出如何解决这个问题…参考: 你

例如,假设顶点A和顶点B构成边,点C表示玩家原点,D是从C到边最近的点。如何计算这个呢?我知道通过得到b-a和c-a的叉积可以帮助边缘对齐,但是我需要得到三维笛卡尔空间中的坐标,而不是比较

这里有一张图表来说明我的问题

我需要找到边上的点。以GLM或类似形式的示例代码将不胜感激!这个问题与原文不同,因为这是C++语言和GLM向量数学库。


谢谢

本打算向您展示,但以下是我5秒钟的谷歌搜索:

参见示例5。甚至在c0d3z上也有haz。即使它们是Java语言。我希望你能想出如何解决这个问题…

参考:

你应该用这个

detail::tvec3<T> glm::gtx::closest_point::closestPointOnLine    (   detail::tvec3< T > const &  point,
detail::tvec3< T > const &  a,
detail::tvec3< T > const &  b 
)       
Find the point on a straight line which is the closet of a point.

这可能是你正在寻找的点产品将给你什么你需要的。想想向量AC映射到向量AB上的项目。基本上,你可以点2,把结果作为一个量值,然后再应用到一个标准化的AB上。感谢Killzone Kid,我已经检查过了,但是回复看起来很模糊。C++中的任何代码示例都会有助于这种情况,谢谢!可能会自动生成上述注释的副本。向我们展示您如何尝试实现该答案中所示的算法,以及问题所在。给我一个代码不是一个受欢迎的问题。这是一个伟大的来源,谢谢!同样,数学对我来说非常模糊,因为我只知道C++和GLM。不过,我会努力理解这个理论,并在这个主题上投入更多的时间,再次感谢!如果你不懂数学,那么你将很难验证你的代码是否有效。我知道这已经很晚了,但我已经使用点叉积系统制作了一个公式-很高兴知道glm支持这一点,谢谢!