将多边形投影到平面上的一般问题已得到广泛解决,但我想知道是否有人可以针对我的特殊情况提出一些建议。
我在 3 维空间中有一个平面多边形 P,我想通过与单位 vector u 正交的原点将它投影到平面上。 P 的顶点和 u 的坐标是我仅有的数据(所有 w.r.t. R^3 的标准基础)。
但是,我不只是想要投影坐标。我实际上想找到与 u 正交的平面的正交基,然后在这个新基中找到投影顶点的坐标。
基本身并不重要,只要它是正交的即可。所以我真的需要在 GNU 科学图书馆的框架内做两件事:
(1) 求与单位 vector u正交的齐次平面的两个正交基 vector 。
(2) 在此基础上求P的顶点在平面上的投影坐标。
关于如何使用 gsl 执行此操作的任何想法?
最佳答案
我没用过GSL,不过你只需要用点积、叉积、归一化就可以得到结果。
(1) 选择任何不是u 倍数的 vector r。设 v = r 和 u 的归一化叉积。设 w = u 和 v 的叉积。您的正交基 vector 是 v 和 w。
(2) 投影一个顶点a到这个平面,它是(a点v) * v + (a 点 w) * w。 (v坐标是a点v,w坐标是a点w)
为了帮助思考这是如何工作的,请选择 u = <1,0,0> 和 r = <3,0,5> 开始,然后可视化3-d vector 。
关于c++ - 在 C/C++ 中使用 GSL 将多边形投影到平面上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3383105/