查看: 118|回复: 1|关注: 0

[已答复] MATLAB根据椭球的一般方程怎么绘制图像

[复制链接]

新手

10 麦片

财富积分


050


3

主题

9

帖子

0

最佳答案
发表于 2020-5-23 16:58:11 | 显示全部楼层 |阅读模式
根据椭球的一般形式:f=a*x*x+b*y*y+c*z*z+d*2*x*y+e*2*x*z+f*2*y*z+p*2*x+q*2*y+*r*2*z+g,已经求出了十个参数,怎么画出椭球的网面图,
捕获2.JPG 想画出这样的图形,应该使用什么函数?求前辈指点
回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

5

主题

2249

帖子

670

最佳答案
  • 关注者: 187
发表于 2020-5-27 13:07:24 | 显示全部楼层

三种方法

①使用旋转矩阵,将该椭球方程由一般形式改写成标准形式。即在另一个参照系下,椭球具有标准的形如
x^2/a^2 + y^2/b^2 + z^2/c^2 - 1 == 0
的形式。该参照系可以经过当前坐标系经过原点平移及沿坐标轴旋转得到。
该方法的优点是清晰明确,可以绘制出类似地球经纬线形式的球体,在求出两个坐标系的互换方式后,在标准椭球上做后续处理总是比在一般形式的方程上要方便很多;缺点是求坐标系互换的参数(标准方程3个参数、平移3个参数、旋转3个参数)非常繁琐。

②使用 isosurface 函数
https://www.mathworks.com/help/matlab/ref/isosurface.html
个人感受,该函数似乎是把三维网格的坐标代入椭球/曲面的方程中计算,然后做类似等高线的处理,将方程具有相同数值的采样点作为曲面的顶点坐标,然后就近连接各顶点以形成三角/四边形小平面,最后由大量的三角/四边形小平面组合起来作为曲面。
优点是代码容易写,而且能够获取全部顶点的坐标参数;缺点是曲面精度取决于三维网格的尺寸,当网格较大时精度不佳。

③使用 fimplicit3 函数
www.mathworks.com/help/matlab/ref/fimplicit3.html
该函数绘制出来的,可以看做是以当前坐标系为参照,将曲面沿xoy,yoz,xoz面依次切片得到等高线,将三个方向的等高线连接起来填充构成曲面。
优点是代码最容易写;缺点是只能画图,连绘制曲面的各顶点的坐标参数都难以获取。

Rotation of Ellipsoid

Rotation of Ellipsoid

提问请:①准确描述问题②提出你的思考(等着抄作业的一律锁帖)③提供代码文本而非截图④及时反馈
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表