matlab中应用surf函数画球形物体的三维坐标变换,从球坐标系转换到笛卡尔坐标系
在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函数画球形物体的三维坐标变换,从球坐标系转换到笛卡尔坐标系相关推荐
- matlab 画多个函数,Matlab中一个figure函数画多个子图和多个figure函数画多个字图...
此博文仅为个人学习笔记,仅供个人使用. 1.如何在一个figure里面画多个子图. %subplot(x,y,n)x表示显示的行数,y表示列数,n表示第几幅图片 figure,subplot(221) ...
- matlab里surf函数,matlab surf 函数画3维图
这个函数很方便.在matlab的环境下,这种交互式的画图方式很节约时间.不过如果对surf函数作图的一些细节不去了解清楚的话,可能会导致一些错误,一下是我使用时的一些总结: 假 设有两列数X[N],Y ...
- matlab中匿名(Anonymous)函数及bsxfun函数
一.匿名函数/Anonymous Function 匿名函数matlab解释: FUNHANDLE = @FUNCTION_NAME returns a handle to the named fun ...
- Matlab中常见实用函数(敲代码碰到的)
目录 1.norm函数 2.varargin函数(varargout) 3.nargout函数(nargin) 4.ndgrid函数 5.ndims函数 6.surface函数 7.gcbf函数 8. ...
- matlab中bwmorph函数的作用,Matlab中的bwmorph函数解释
Matlab中的bwmorph函数解释 bwmorph:对二值图像的形态学操作. BW2 = bwmorph(BW,operation) BW2 =bwmorph(BW,operation,n) BW ...
- matlab里newff,新版matlab中神经网络训练函数newff的使用方法
新版matlab中神经网络训练函数newff的使用方法 新版 Matlab 中神经网络训练函数 Newff 的使用方法一. 介绍新版 newffSyntax net = newff(P,T,[S1 ...
- MATLAB中的常用函数小结
1. MATLAB中的常用函数小结 文章目录 1. MATLAB中的常用函数小结 1. MATLAB图像处理工具箱 1.1 图像显示 1.2 图像文件输入/输出 1.3. 图像像素值及其统计 1.4 ...
- 新版matlab newff,[转载]新版Matlab中神经网络训练函数Newff的使用方法
新版Matlab中神经网络训练函数Newff的使用方法 一. 介绍新版newff Syntax · net = newff(P,T,[S1 S2...S(N-l)],{TF1 TF2...TFNl}, ...
- Matlab newff 训练时间,新版Matlab中神经网络训练函数Newff的使用方法
新版Matlab中神经网络训练函数Newff的使用方法 一. 介绍新版newff Syntax · net = newff(P,T,[S1 S2...S(N-l)],{TF1 TF2...TFNl}, ...
最新文章
- 奥的斯GECS系统服务器手册,奥的斯电梯GECS 扶梯控制柜介绍.pdf
- Xamarin iOS开发实战中册 (内部资料)C#苹果应用开发
- JVM(一) ---JVM的数据模型
- Help Jimmy(递归)
- 如何将网页保存为图片_如何用浏览器插件一键批量下载网页图片?
- java代码调用python_java 直接调用python脚本,并传递参数代码实例|chu
- tp3.2php开启事务,Thinkphp 3.2.3 开启调试模式
- django 按钮的样式_【实战演练】Python+Django网站开发系列11-成绩查询与成绩录入...
- ESXi安装时遇到不识别的硬件的处理
- java程序利用HttpSessionListener实现统计在线人数(示例代码)
- Scrapy 爬取链家租房价格信息
- 家与年:解读中国文化的深层密码
- 什么是光纤?光纤有哪些优势?
- 2018年全国大学生电子设计竞赛
- 同步linux软件源,linux 双向同步软件 unison的安装和配置!
- 判断人物眼型matlab,怎么判断眼型和脸型?
- 智能手表发展史:我们用过、见过和从未听说的
- Java| MANIFEST.MF讲解
- 苹果手机功能大全介绍_抖音手机软件剪辑推荐及功能介绍
- PDF转换成JPG图片怎么转换?这两招轻松搞定