为什么常识

一个三维点投影到二维屏幕的点选择的问题

生活词典 changshi.cidiancn.com

阅读: 72

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

答案 1:

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

答案 2:

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

分享常识给亲友.

下一篇:我需要招聘一位男性青年来负责我们的玩具B2C项目,应该如何去招聘最有效? 下一篇 【方向键 ( → )下一篇】

上一篇:成本增加 & 中国制造还能走多远? 上一篇 【方向键 ( ← )上一篇】