原文链接: 三维空间中圆的参数方程

三维空间中,以点为圆心、以向量为法向量、半径为 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程序画图相关推荐

  1. 三维空间中圆的参数方程

    三维空间中,以点为圆心.以向量为法向量.半径为 r 的圆(见下图), 它的参数方程为: 其中,与分别对应单位向量与,它们既垂直于,又互相垂直:随着从0变化到 ,通过参数方程可以得到圆上每一个点的坐标. ...

  2. matlab 模拟风,三维空间相关风场的计算机模拟及Matlab程序实现

    第 14 卷第 2 期2008 年 6 月 空 间 结 构 SPATIAL STRUCTURES Vol. 14 No. 2 Jun. 2008 收稿日期:200610208. 作者简介:刘文洋(19 ...

  3. 数学建模中matlab程序,数学建模中常用的30个MATLAB程序和函数

    <数学建模中常用的30个MATLAB程序和函数>由会员分享,可在线阅读,更多相关<数学建模中常用的30个MATLAB程序和函数(15页珍藏版)>请在人人文库网上搜索. 1.内部 ...

  4. 空间平面方程 java,【数学】 三维空间中圆的方程

    转载请注明出处! 中北大学 郑海鹏 在三维空间中,一个沿着圆周运动的物体在某一时刻的位置.例如卫星围绕地球旋转时确定在某一时刻的位置坐标. Vector3.java package 求三维空间圆的参数 ...

  5. matlab中ahp方法,AHP及matlab程序.doc

    层次分析法(AHP)及matlab程序 层次分析法是一种新的定性分析与定量分析相结合的系统分析方法,是将人的主观判断用数量形式表达和处理的方法,简称AHP(The Analytic Hierarchy ...

  6. 从PSCAD中导出数据并绘图MATLAB程序

    方法一 1, PSCAD中右键对应项目"Project Setting" ,在Runtime选项卡下,选择Save channels to disk中的"Yes" ...

  7. 建模中常用的30各MATLAB程序和函数

    内部数学常数 pi 圆周率 exp(1) 自然对数的底数e i 或j 虚数单位 Inf或 inf 无穷大 2 基本数学运算符 a+b  加法 a-b 减法 a*b 矩阵乘法 a.*b 数组乘法 a/b ...

  8. matlab中asix off_遗传算符MATLAB程序-入门必看

    % 下面举例说明遗传算法 % % 求下列函数的最大值 % % f(x)=10*sin(5x)+7*cos(4x) x ∈ [0,10] % % 将 x 的值用一个 10 位的二值形式表示为二值问题,一 ...

  9. matlab条件异方差模型,求ARFIMA模型中参数d估计的MATLAB程序

    最新课程-Stata 2015暑期研讨班: Stata暑期研讨初级班[2015年7月3日-6日,四天,北京] 课程详情:http://www.peixun.net/view/307_detail.ht ...

最新文章

  1. Git基础(常用命令)介绍
  2. 基于鲁棒图进行概念架构设计
  3. numpy数组统计函数amin() amax()
  4. SSH 自动断开 解决方案
  5. python变量类型-【干货】Python基础语法之变量类型
  6. 通过修改然后commit的方式创建自己的镜像
  7. sed教程入门与实例练习(二)
  8. Personal Rank——个性化推荐召回算法python
  9. 修改map的值_Array.prototype.map() 详解
  10. Win7任务栏图标大小调整为等宽
  11. Windows 7集成IE11(离线安装包、补丁)
  12. 最详细的Quartus + Modesim完整波形仿真过程
  13. Google Play 应用迁移
  14. 世界顶级企业的数据中台打造之旅
  15. win10 安全设置
  16. 电磁元件(电阻,电容与电感)
  17. Word2016(2013)页码、分节符
  18. 外贸行业薪资考核系统勤哲EXCEL服务器实现
  19. PHP笔记-laravel中使用jquery及jquery.niceScroll.js
  20. 2013全国计算机一级考试,2013全国计算机等级考试一级试题及讲解

热门文章

  1. 怎么去除pdf文件的水印?好用软件说明
  2. Java工程师一般薪资多少_JAVA工程师的薪资是多少
  3. linux drm 架构
  4. python基于logistic回归模型的预测概率和标签信息可视化ROC曲线
  5. 一个加班多新人多团队,我们的代码问题与重构
  6. 博优商业管理系统ASA数据库“File is shorter than expected -- transaction rolled back”错误修复...
  7. turtle风轮绘制
  8. Nikola盘前跌近2%,公司内部审查发现创始人部分言论不准确
  9. 【信号与系统】(十六)傅里叶变换与频域分析——傅里叶变换的性质
  10. matlab simulink欠驱动水面船舶航迹自抗扰控制研究