这一章节的内容和“问题四十二”有点类似,或者说有点重复。
“问题四十二”的链接:http://blog.youkuaiyun.com/libing_zeng/article/details/54563752
但是,“问题四十二”中只能画圆环的片段,类似于如下图形:
我们现在要画的部分圆环图形类似于:
这种“部分圆环”,加上坐标轴,大概是这个样子:
为了画这种部分圆环,我们引入四个参数:phi1、phi2、theta1、theta2
phi1、phi2用来将圆环“切断”(和“问题四十二”是一样的);
theta1、theta2是用来将圆环“切开”。
理论分析
将圆环“切断”
具体做法:
1,将撞击点p投影到xoz平面,投影点为p';
2,op'和+x轴的夹角即为phi;
3,判断phi是否在[phi1,phi2]区间内。
将圆环“切开”
具体做法:
C++代码实现
测试图形
其他说明
[1]. Kevin Suffern, Ray Tracing from theGround Up, A K Peters Ltd, 2007.