在Matlab中采用surf函数画三维图时,该函数使用笛卡尔坐标系绘制图形,因此在某些球形图案的绘制中,直接使用(theta,phi,z)参数无法得到球形图案,需要将图案对应的点从球坐标转变为笛卡尔坐标,从而得到球形图案。
调用如下的子程序可以完成相应的坐标变换。
代码如下:

function [Spherical_x, Spherical_y, Spherical_z] = rectangular2spherical(theta, phi, z)
%因为画图时使用surf来画图,所以要保证theta,phi,z的矩阵大小相同
%相当于三维空间中,一个点的三个坐标。
R = abs(z);
%z = z - max(z); %如果z小于零,可以只取较大的数
%R=z(z + 20 > 0);
Spherical_x = R .* sin(theta) .* cos(phi);
Spherical_y = R .* sin(theta) .* sin(phi);
Spherical_z = R .* cos(theta);
end

看起来很简单的,下面写个主程序调用一下。

clear
close all
clc
%用(theta,phi,z)坐标画一个平面,然后变换为(x,y,z)形成一个球。theta = -90 : 1 : 90;
phi = 0 : 1 : 360;
z = ones(length(theta), length(phi));
[theta_xx, phi_yy] = meshgrid(phi, theta);
figure(1)
surf(theta_xx, phi_yy, z)
title('直角坐标系')
shading flat %去掉网格的边沿颜色
[theta_xx, phi_yy, z] = rectangular2spherical(theta_xx, phi_yy, z); %调用上面函数
figure(2)
surf(theta_xx, phi_yy, z)
title('球坐标系')
shading flat
axis equal %坐标系对称

结果如下:


编者水平有限,殷切希望批评指正。有相关疑问也可以评论咨询,谢谢啦_

matlab中应用surf函数画球形物体的三维坐标变换,从球坐标系转换到笛卡尔坐标系相关推荐

  1. matlab 画多个函数,Matlab中一个figure函数画多个子图和多个figure函数画多个字图...

    此博文仅为个人学习笔记,仅供个人使用. 1.如何在一个figure里面画多个子图. %subplot(x,y,n)x表示显示的行数,y表示列数,n表示第几幅图片 figure,subplot(221) ...

  2. matlab里surf函数,matlab surf 函数画3维图

    这个函数很方便.在matlab的环境下,这种交互式的画图方式很节约时间.不过如果对surf函数作图的一些细节不去了解清楚的话,可能会导致一些错误,一下是我使用时的一些总结: 假 设有两列数X[N],Y ...

  3. matlab中匿名(Anonymous)函数及bsxfun函数

    一.匿名函数/Anonymous Function 匿名函数matlab解释: FUNHANDLE = @FUNCTION_NAME returns a handle to the named fun ...

  4. Matlab中常见实用函数(敲代码碰到的)

    目录 1.norm函数 2.varargin函数(varargout) 3.nargout函数(nargin) 4.ndgrid函数 5.ndims函数 6.surface函数 7.gcbf函数 8. ...

  5. matlab中bwmorph函数的作用,Matlab中的bwmorph函数解释

    Matlab中的bwmorph函数解释 bwmorph:对二值图像的形态学操作. BW2 = bwmorph(BW,operation) BW2 =bwmorph(BW,operation,n) BW ...

  6. matlab里newff,新版matlab中神经网络训练函数newff的使用方法

    新版matlab中神经网络训练函数newff的使用方法 新版 Matlab 中神经网络训练函数 Newff 的使用方法一. 介绍新版 newffSyntax net = newff(P,T,[S1 ...

  7. MATLAB中的常用函数小结

    1. MATLAB中的常用函数小结 文章目录 1. MATLAB中的常用函数小结 1. MATLAB图像处理工具箱 1.1 图像显示 1.2 图像文件输入/输出 1.3. 图像像素值及其统计 1.4 ...

  8. 新版matlab newff,[转载]新版Matlab中神经网络训练函数Newff的使用方法

    新版Matlab中神经网络训练函数Newff的使用方法 一. 介绍新版newff Syntax · net = newff(P,T,[S1 S2...S(N-l)],{TF1 TF2...TFNl}, ...

  9. Matlab newff 训练时间,新版Matlab中神经网络训练函数Newff的使用方法

    新版Matlab中神经网络训练函数Newff的使用方法 一. 介绍新版newff Syntax · net = newff(P,T,[S1 S2...S(N-l)],{TF1 TF2...TFNl}, ...

最新文章

  1. 奥的斯GECS系统服务器手册,奥的斯电梯GECS 扶梯控制柜介绍.pdf
  2. Xamarin iOS开发实战中册 (内部资料)C#苹果应用开发
  3. JVM(一) ---JVM的数据模型
  4. Help Jimmy(递归)
  5. 如何将网页保存为图片_如何用浏览器插件一键批量下载网页图片?
  6. java代码调用python_java 直接调用python脚本,并传递参数代码实例|chu
  7. tp3.2php开启事务,Thinkphp 3.2.3 开启调试模式
  8. django 按钮的样式_【实战演练】Python+Django网站开发系列11-成绩查询与成绩录入...
  9. ESXi安装时遇到不识别的硬件的处理
  10. java程序利用HttpSessionListener实现统计在线人数(示例代码)
  11. Scrapy 爬取链家租房价格信息
  12. 家与年:解读中国文化的深层密码
  13. 什么是光纤?光纤有哪些优势?
  14. 2018年全国大学生电子设计竞赛
  15. 同步linux软件源,linux 双向同步软件 unison的安装和配置!
  16. 判断人物眼型matlab,怎么判断眼型和脸型?
  17. 智能手表发展史:我们用过、见过和从未听说的
  18. Java| MANIFEST.MF讲解
  19. 苹果手机功能大全介绍_抖音手机软件剪辑推荐及功能介绍
  20. PDF转换成JPG图片怎么转换?这两招轻松搞定

热门文章

  1. 自定义函数 | R语言偏相关分析及绘图
  2. 【考试总结贴】控制测量学
  3. 双线一柱变色MACD指标
  4. 免校准的电量计量芯片_【应用】基于高精度免校准电能计量芯片CSE7761的漏电保护设计,可支持单芯片两路计量...
  5. 像呼吸空气一样呼吸创意
  6. 用php实现本地文件的上传
  7. 漫威商业逆袭成功秘诀
  8. SpringCloud学习系列之三-----配置中心(Config)文件修改后,客户端动态刷新(Refresh)
  9. App开屏页如何设计?来看这五个常用的方法
  10. 哔哩哔哩2018校招前端笔试