高分求解,如何求三维空间中椭球体上任意点的法线?

tarkey 2005-01-30 04:54:16
已知椭球中点vector3 midpoint;
在x,y,z三个轴方向的半径:vector3 r1, r2, r3;

求椭球体上任意点的法线。。
...全文
800 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
寻开心 2005-01-31
  • 打赏
  • 举报
回复
楼主用三个向量,应该意味着空间的有姿态的椭球(旋转后的)
不过按照mathe的解释,可以先计算出旋转矩阵,然后把转换椭球上的任意一点到轴向的原始椭球上,让后再变换回来。
这样就需要矩阵和逆矩阵对向量的乘法运算了。
这个变换矩阵很容易构造,只要把轴向量单位化,和中点作为矩阵的组成向量就可以得到一个旋转矩阵了,反向的逆矩阵需要计算一下。
mathe 2005-01-31
  • 打赏
  • 举报
回复
定义有问题,既然x,y,z三个方向的半径,那么r1,r2,r3应该是数字,而不是vector3.
设Midpoint=(m.x,m.y,m.z)
那么椭球方程为
(x-m.x)^2/r1^2 + (y-m.y)^2/r2^2+(z-m.z)^2/r3^2=1
椭球上任意一点(x0,y0,z0)处切面方程为
(x0-m.x)(x-m.x)/r1^2+(y0-m.y)(y-m.y)/r2^2+(z0-m.z)(z-m.z)/r3^2=1
所以对应点(x0,y0,z0)的法线方向为
((x0-m.x)/r1^2, (y0-m.y)/r2^2, (z0-m.z)/r3^2)
法线方程为:
x=x0+t*(x0-m.x)/r1^2
y=y0+t*(y0-m.y)/r2^2
z=z0+t*(z0-m.y)/r3^2

33,009

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧