三维空间中,以点为圆心、以向量为法向量、半径为 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运行结果如下图:

三维空间中圆的参数方程相关推荐

  1. 三维空间中圆的参数方程及matlab程序画图

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

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

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

  3. 使用Matlab绘制三维空间中的任意圆(参数方程/坐标转换)

    要实现的绘图效果: 问题分析: 首先,要明确定义三维空间中的圆需要哪些参数: 给定圆所在平面(空间中的平面可以用点法式给定,即给定平面上一点和平面在该点处的法向量) 给定圆心位置(三维空间中的点的坐标 ...

  4. 三维空间中的圆与三角形(二):圆与外切三角形

    圆的参数方程(字母所代表含义可参见[第六回]OCCT之Package Geom的曲线曲面参数方程解析): P(U) = O + R*Cos(U)*XDir + R*Sin(U)*YDir 已知△ABC ...

  5. 三维空间中的圆与三角形(一):圆与内接三角形

    注:我在这里撰写的对空间解析几何性质的分析都将是能直接应用到软件开发中,所以对这些性质的分析后都会列出最终的公式出来. 已知圆弧上起点.中间任意一点.终点,求这段圆弧 要求出这段圆弧并最终能在屏幕上光 ...

  6. [足式机器人]Part1 三维空间中的跳行Ch03——【Legged Robots that Balance 读书笔记】

    本文仅供学习使用 本文结合个人理解体会作者的思路,也从个人科研角度出发,部分翻译参考由:QQ群(2群legged robot that balance)提供,感谢他们为本文英文版翻译所做的贡献(但有些 ...

  7. 光滑曲线_微分几何笔记(4) —— 二维三维空间中曲线的曲率以及环绕数

     本篇文章我们从一般化的 空间回到我们生活的 空间,看看低维空间中的曲线有哪些性质,主要计算下在非弧长参数下的曲线,曲率挠率的一般表达式. 最后引入环绕数的概念,讲讲怎么数曲线转了多少圈. 4.1 ...

  8. 三维空间中的两直线相交

    很多资料上提供的两直线相交求点问题一般都是基于二维空间的,而且是直接使用坐标系进行求解.实际上知道二维空间中的求法(使用坐标系进行求解的),要想从中推导到三维空间中的求法是不容易的.在进行几何问题求解 ...

  9. c++中用opengl的gl函数在三维空间中绘制圆形和画球体

    c++中用opengl的gl函数在三维空间中绘制圆形和球体 绘制圆形原理: 画圆形的原理如下图,画一个圆形就相当于切蛋糕一样,将一个圆形切成很多个扇形,而扇形可以用三角形类似表示,所以我们可以将绘制圆 ...

最新文章

  1. FFMPEG学习(一)---【命令行】采集视频和音频
  2. 我们多么想要新的Java日期/时间API?
  3. 一维有限元法matlab,有限元matlab研究.ppt
  4. confluence添加用户_玩转Confluence插件开发插件模块配置文件介绍(04)
  5. 洛谷——P2095 营养膳食
  6. python log函数_python装饰器的使用
  7. [转载] Python版简易计算器的实现
  8. 用Golang写一个搜索引擎(0x07)--- 正排索引
  9. 微信公众号-自定义菜单的创建
  10. 【Plesk经验分享】无法创建备份怎么办?
  11. 小白教程系列——XMind8 Pro下载安装
  12. Webgl(ThreeJS)空间测量\测距功能(附工程文件)
  13. 鸿蒙系统怎么关闭地理位置通知,让隐私无忧,查看和去除照片地理位置信息的App小集合...
  14. 系统滴答定时器的应用
  15. 年薪百万的阿里 P7 到底该具备什么样的能力?!解密篇
  16. android电视 浏览器 全屏,小屏幕大世界 傲游云浏览器Android全屏模式
  17. Linux终端编程--termios
  18. 虚拟自动取款机ATM设计(C语言)
  19. 图解 DDD 建模六个问题与六个步骤
  20. 如何通过X1使电脑上网

热门文章

  1. 腾讯运维工程师认证(TCA)认证考试的知识点
  2. 腾讯tca认证值得考吗?对比阿里云ACA有何优劣?
  3. java利用Freemarker模板生成格式友好的doc或者docx文档
  4. 谷歌彩蛋-让搜索结果页面下雪、旋转、倾斜
  5. 三态(tri-state)门、双向(bi-directional)端口的建模、仿真和综合
  6. 计算机设置定时任务及自动开关机
  7. 关于SetCapture() 和 ReleaseCapture()的用法
  8. 财会专业必看的5本书(不是抖机灵回答,专业性强的)
  9. 本地数据库IndexedDB - 学员管理系统之登录(一)
  10. 6种样式html网页播放器源码