在vtk中,我们通常加入道具以后,会ResetCamera,这个是具体做了什么?
void vtkRenderer::ResetCamera()
this->ComputeVisiblePropBounds(allBounds);
跟踪源码可以看到,这个是计算道具的边界。
然后调用ResetCamera带参数的
获取是平面法向量,
计算中心点,获取球半径,这里要说明下
我们获取了道具的左右,上下和前后边界,相当于获取一个大的盒子,
在盒子外面画个球,这个是想象中的,
;球半径公式,
获取相机到球中心点距离,使用正弦定理,sin(a)c=r. >c = r/sin(a)
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021071300075792.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3prd2x5ejE2Mzk4OA,size_16,color_FFFFFF,t_70
中心点+距离法向量,就是camera位置点。