gpt4 book ai didi

c++ - 如何将点投影到 3D 平面上?

转载 作者:IT老高 更新时间:2023-10-28 13:22:59 36 4
gpt4 key购买 nike

我有一个 3D 点 (point_x,point_y,point_z),我想将它投影到 3D 空间中的 2D 平面上,该平面由点坐标 (orig_x,orig_y,orig_z) 和一元垂线定义 vector (normal_dx,normal_dy,normal_dz)。

我应该如何处理? enter image description here

最佳答案

  1. 从您的 orig 点创建一个 vector 到兴趣点:

v = 点原点(在每个维度中);

  1. 将该 vector 与单位法线 vector n的点积:

dist = vx*nx + vy*ny + vz*nz; dist = 点到平面沿法线的标量距离

  1. 将单位法线 vector 乘以距离,然后从您的点中减去该 vector 。

projected_point = point - dist*normal;

用图片编辑:我稍微修改了你的图片。红色是 vdist 是蓝色和绿色的长度,等于 v dot normal。蓝色是 normal*dist。绿色与蓝色是相同的 vector ,它们只是绘制在不同的地方。要找到 plane_xyz,从 point 开始,减去绿色 vector 。

Projection of point onto plane

关于c++ - 如何将点投影到 3D 平面上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9605556/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com