在三维坐标系中,已经存在点,需要用鼠标来捕捉点,如何实现?
需要注意的是,在三维中,在一个坐标平面上的点,可能是几个空间上的点的投影的重合。这时选择的点是排在最前面的点,如何实现?

解决方案 »

  1.   

    看DX的pick的例子
    原理是,鼠标点集屏幕上的点,根据视点和这个屏幕坐标点的连线,反向变换到三维world坐标系,用这个射线去求交计算和什么物体的哪个三角形相交。如果是你已经知道要捕捉的点的点集,你可以用另外的办法
    把这些点,利用world view 和 Project变换矩阵变换到屏幕上(x,y,z)坐标,注意这个是有z分量的
    然后看鼠标点距离那个点最近,找xy距离最近,而且z分量最小的为选择点
      

  2.   

    "看DX的pick的例子":)这个从哪里可以找到???
      

  3.   

    dxsdk啊
    你用的是什么做的底层显示啊,directx还是opengl啊
      

  4.   

    那不要dx的,要不然也晕
    看这个:
      http://www.x-temple.com/file/x_files/selection.doc
    以及:
      http://www.legalsoft.com.cn/Articles/ArticleBrowse.asp?idArticle=265
    两种不同的技术
      

  5.   

    http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=199172