首页 > 教育学习 > 为什么 > 一个三维点投影到二维屏幕的点选择的问题

一个三维点投影到二维屏幕的点选择的问题
2012-01-19 17:48:00   来源:   点击:

    一个三维点投影到二维屏幕的点选择的问题
    • 数据链表里有一系列的空间三维点Point3D(x,y,z),在屏幕上显示出来的时候投影为二维点Point2D(a,b);
    • 我需要用鼠标去选择三维点。
    ====以上是背景====我的做法是:求出所有三维点在二维屏幕上的投影,再用鼠标位置与二维坐标进行对比,如果小于允许的误差,则选中。但这个过程需要遍历链表,过于耗时。====以上是我的做法====有没有更加简便高效的算法?====以上是问题====
    • 我看过很多软件,对这类问题进行处理的时候,效率很高(规模很大电脑也不卡,而我的小规模的话电脑就会卡-_-。),所以应该会有更高效的算法;
    • 每次移动视角观察三维点的时候,二维坐标都会改变,这样使得计算量很大。
    ====以上是思考===

    2 个答案

    • 答案 1:

      为什么不反过来,实际上是给定一个三维点集和一条射线求交的问题,对不对? 计算三维点集到射线距离最短的点这个问题是非常典型的问题,我不清楚提问者的编程平台,不过你可以考虑检索诸如 ray tracing之类的关键词,应该可以获得你想要的东西。
    • 答案 2:

      如果按照问题的那种先映射到2D平面中再做判断,可以考虑用GPU shader加速,这样对于每一个点,通过GPU的并行计算,一下就得到所有点的2D坐标,并且在并行计算过程中,就可以完成最近点的计算。 我想应该会有更简单的方法,但上述是我实现过的方法!

相关热词搜索:

上一篇:在已经有whatsapp等一系列即时聊天工具的情况下,苹果为什么还要推出iMessage呢?
下一篇:新浪微博的网址是 weibo.com,是没有主机名的吗?怎么实现的?