三维空间中圆的参数方程及matlab程序画图
原文链接: 三维空间中圆的参数方程
三维空间中,以点为圆心、以向量为法向量、半径为 r 的圆(见下图),
它的参数方程为:
其中,与分别对应单位向量与,它们既垂直于,又互相垂直;随着从0变化到
,通过参数方程可以得到圆上每一个点的坐标。
与是满足既垂直于,又互相垂直的任意单位向量。怎么样快速得到满足条件的与呢?这时候应该充分利用叉乘运算的特点,因为两个向量的叉乘结果只要不为零,叉乘结果总是垂直于原来的这两个向量。具体如下:
求的方法:叉乘坐标向量。如果叉乘结果不为零,那么它必然垂直于,把它单位化后就得到;如果叉乘结果恰好为零,再用叉乘剩下两个坐标向量与中任意一个,单位化叉乘结果,得到。
求的方法:叉乘上一步得到的,叉乘结果必然垂直于与,单位化叉乘结果,就得到。
接下来,利用Matlab软件对三维空间中圆的参数方程进行测试。代码如下:
n=[1 1 1]; %法向量n
r=1; %圆的半径为1
c=[1 1 1]; %圆心的坐标
theta=(0:2*pi/100:2*pi)'; %theta角从0到2*pi
a=cross(n,[1 0 0]); %n与i叉乘,求取a向量
if ~any(a) %如果a为零向量,将n与j叉乘
a=cross(n,[0 1 0]);
end
b=cross(n,a); %求取b向量
a=a/norm(a); %单位化a向量
b=b/norm(b); %单位化b向量
c1=c(1)*ones(size(theta,1),1);
c2=c(2)*ones(size(theta,1),1);
c3=c(3)*ones(size(theta,1),1);
x=c1+r*a(1)*cos(theta)+r*b(1)*sin(theta);%圆上各点的x坐标
y=c2+r*a(2)*cos(theta)+r*b(2)*sin(theta);%圆上各点的y坐标
z=c3+r*a(3)*cos(theta)+r*b(3)*sin(theta);%圆上各点的z坐标
plot3(x,y,z)
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
Matlab运行结果如下图:
三维空间中圆的参数方程及matlab程序画图相关推荐
- 三维空间中圆的参数方程
三维空间中,以点为圆心.以向量为法向量.半径为 r 的圆(见下图), 它的参数方程为: 其中,与分别对应单位向量与,它们既垂直于,又互相垂直:随着从0变化到 ,通过参数方程可以得到圆上每一个点的坐标. ...
- matlab 模拟风,三维空间相关风场的计算机模拟及Matlab程序实现
第 14 卷第 2 期2008 年 6 月 空 间 结 构 SPATIAL STRUCTURES Vol. 14 No. 2 Jun. 2008 收稿日期:200610208. 作者简介:刘文洋(19 ...
- 数学建模中matlab程序,数学建模中常用的30个MATLAB程序和函数
<数学建模中常用的30个MATLAB程序和函数>由会员分享,可在线阅读,更多相关<数学建模中常用的30个MATLAB程序和函数(15页珍藏版)>请在人人文库网上搜索. 1.内部 ...
- 空间平面方程 java,【数学】 三维空间中圆的方程
转载请注明出处! 中北大学 郑海鹏 在三维空间中,一个沿着圆周运动的物体在某一时刻的位置.例如卫星围绕地球旋转时确定在某一时刻的位置坐标. Vector3.java package 求三维空间圆的参数 ...
- matlab中ahp方法,AHP及matlab程序.doc
层次分析法(AHP)及matlab程序 层次分析法是一种新的定性分析与定量分析相结合的系统分析方法,是将人的主观判断用数量形式表达和处理的方法,简称AHP(The Analytic Hierarchy ...
- 从PSCAD中导出数据并绘图MATLAB程序
方法一 1, PSCAD中右键对应项目"Project Setting" ,在Runtime选项卡下,选择Save channels to disk中的"Yes" ...
- 建模中常用的30各MATLAB程序和函数
内部数学常数 pi 圆周率 exp(1) 自然对数的底数e i 或j 虚数单位 Inf或 inf 无穷大 2 基本数学运算符 a+b 加法 a-b 减法 a*b 矩阵乘法 a.*b 数组乘法 a/b ...
- matlab中asix off_遗传算符MATLAB程序-入门必看
% 下面举例说明遗传算法 % % 求下列函数的最大值 % % f(x)=10*sin(5x)+7*cos(4x) x ∈ [0,10] % % 将 x 的值用一个 10 位的二值形式表示为二值问题,一 ...
- matlab条件异方差模型,求ARFIMA模型中参数d估计的MATLAB程序
最新课程-Stata 2015暑期研讨班: Stata暑期研讨初级班[2015年7月3日-6日,四天,北京] 课程详情:http://www.peixun.net/view/307_detail.ht ...
最新文章
- Git基础(常用命令)介绍
- 基于鲁棒图进行概念架构设计
- numpy数组统计函数amin() amax()
- SSH 自动断开 解决方案
- python变量类型-【干货】Python基础语法之变量类型
- 通过修改然后commit的方式创建自己的镜像
- sed教程入门与实例练习(二)
- Personal Rank——个性化推荐召回算法python
- 修改map的值_Array.prototype.map() 详解
- Win7任务栏图标大小调整为等宽
- Windows 7集成IE11(离线安装包、补丁)
- 最详细的Quartus + Modesim完整波形仿真过程
- Google Play 应用迁移
- 世界顶级企业的数据中台打造之旅
- win10 安全设置
- 电磁元件(电阻,电容与电感)
- Word2016(2013)页码、分节符
- 外贸行业薪资考核系统勤哲EXCEL服务器实现
- PHP笔记-laravel中使用jquery及jquery.niceScroll.js
- 2013全国计算机一级考试,2013全国计算机等级考试一级试题及讲解
热门文章
- 怎么去除pdf文件的水印?好用软件说明
- Java工程师一般薪资多少_JAVA工程师的薪资是多少
- linux drm 架构
- python基于logistic回归模型的预测概率和标签信息可视化ROC曲线
- 一个加班多新人多团队,我们的代码问题与重构
- 博优商业管理系统ASA数据库“File is shorter than expected -- transaction rolled back”错误修复...
- turtle风轮绘制
- Nikola盘前跌近2%,公司内部审查发现创始人部分言论不准确
- 【信号与系统】(十六)傅里叶变换与频域分析——傅里叶变换的性质
- matlab simulink欠驱动水面船舶航迹自抗扰控制研究