OpenGL中是否有任何Ray球体交互代码。我真的需要了解该程序,所以我正在寻找它,但找不到它。这似乎是流行的问题,但我只能找到公式和基本原理而不是任何一个例子。 http://wiki.cgsociety.org/index.php/Ray_Sphere_Intersection
我不知道如何去做。这就是我得到的:http://www.sendspace.com/file/8gb6fj
你们有没有人这样做过,或者知道我可以获得该计划的某些来源?
答案 0 :(得分:34)
令:
球体的笛卡尔方程是:
让我们写出线的参数方程(参数d):
球体方程中的替换产生:
这是d中的二次方程式,其中的描述是:
使用:
如果Delta <0则没有交叉点
如果Delta == 0则有一个交叉点(该线接触球体) 唯一的解决方案是d = -b / 2a(从那里使用参数方程来计算交点的坐标)
如果Delta> 0,则存在两个交叉点 解决方案是d1 =( - b-sqrt(Delta))/(2a)和d2 =( - b + sqrt(Delta))/(2a)(从那里使用参数方程计算交叉点的坐标)
所以你需要做的是:
答案 1 :(得分:3)
OpenGL是一个纯粹的绘图API,即整个设计旨在提供绘图工具。没有场景管理,几何工具等。必须通过其他方式提供。