OpenGL中是否有任何Ray球体交互代码.我真的需要了解该程序,所以我正在寻找它,但找不到它.这似乎是流行的问题,但我只能找到公式和基本原理而不是任何一个例子. http://wiki.cgsociety.org/index.php/Ray_Sphere_Intersection
我不知道该如何去做.这就是我得到的:http://www.sendspace.com/file/8gb6fj
你有没有人做过这件事,或者知道某些来源我可以获得该计划?
Sté*_*ane 34
让:
球体的笛卡尔方程是:
让我们写出线的参数方程(参数d):
在球体方程中替换产生:
这是d中的二次方程,其中的描述是:
有:
如果Delta <0则没有交叉点
如果Delta == 0则有一个交叉点(该线接触球体)唯一解是d = -b/2a(从那里使用参数方程来计算交点的坐标)
如果Delta> 0则有两个交点,则解是d1 =( - b-sqrt(Delta))/(2a),d2 =( - b + sqrt(Delta))/(2a)(从那里使用用于计算交点坐标的参数方程式)
所以你要做的是: