|
|
发表于 2006-4-4 08:19:00
|
显示全部楼层
Re:如何在三维坐标下选取一个模型
最简单的方法
你首先 可以 先对模型建立 包围球
然后获得屏幕的鼠标点击位置
将这个 mousePt转换为 在 投影面上的坐标
具体转化公式 proj_x=mousePt.x-0.5*viewPort.width;
proj_y=-0.5*mouse_pt.y+0.5*viewPort.height;
proj_z=0.5*viewPort.width*cot(fov_x/2);
这样 在观察坐标系下的 射线相当于 从原点 到(proj_x,proj_y,proj_z)
将物体的球心 变换到观察坐标系下 这样 就只是 射线和球的求交问题了
射线的参数方程 x=proj_x*t y=proj_y*t z=proj_Z*t
球的方程(x-a)*(x-a)+(y-b)*(y-b)+(z-c*)(z-c)=r*r;
现在只要联合求 看是否 t>0就好了
|
|