三维直角坐标系

三维直角坐标系是一种利用直角坐标(x,y,z)来表示一个点 P 在三维空间的位置的三维正交坐标系

注:本文所讨论的三维直角坐标系,默认其x-轴、y-轴、z-轴满足右手定则(如右图所示)。

在三维空间的任何一点 P ,可以用直角坐标(x,y,z)来表达其位置。如左下图显示了三维直角坐标的几何意义:点P在x-轴、y-轴、z-轴上的投影距离分别为x、y、z。如右下图所示,两个点 P 与 Q 的直角坐标分别为(3,0,5)与(-5,-5,7) 。

球坐标系

球坐标系是一种利用球坐标(r,θ,φ)来表示一个点 P 在三维空间的位置的三维正交坐标系

下图描述了球坐标的几何意义:原点O与目标点P之间的径向距离为r,O到P的连线与正z-轴之间的夹角为天顶角θ,O到P的连线在xy-平面上的投影线与正x-轴之间的夹角为方位角φ

假设 P 点在三维空间的位置的三个坐标是 。那么, 0 ≤ r 是从原点到 P 点的距离, 0 ≤ θ ≤ π 是从原点到 P 点的连线与正 z-轴的夹角, 0 ≤ φ < 2π 是从原点到 P 点的连线在 xy-平面的投影线,与正 x-轴的夹角。当  时, 与  都一起失去意义。当  或  时, 失去意义。

三维空间下直角坐标与球坐标的相互转换

直接坐标转球坐标

 、

 、

 。

球坐标转直角坐标

 、

 、

 。

基于Flex的坐标转换实现

直角坐标定义类CartesianCoord.cs

package hans_gis.coord
{public class CartesianCoord{public var x:Number;public var y:Number;public var z:Number;static private var temp:CartesianCoord = CartesianCoord.ZERO;public function CartesianCoord(x:Number=0, y:Number=0, z:Number=0){this.x = x;this.y = y;this.z = z;}public function clone():CartesianCoord{return new CartesianCoord(this.x, this.y, this.z);}public function copyTo(n:CartesianCoord):void{n.x = this.x;n.y = this.y;n.z = this.z;}public function copyFrom(n:CartesianCoord):void{this.x = n.x; this.y = n.y; this.z = n.z; }public function reset(newx:Number = 0, newy:Number = 0, newz:Number = 0):void{this.x = newx; this.y = newy; this.z = newz; }static public function get ZERO():CartesianCoord{return new CartesianCoord(0, 0, 0);}}
}

球坐标定义类SphericalCoord.cs

package hans_gis.coord
{public class SphericalCoord{public var radius:Number;public var theta:Number;public var phi:Number;static private var temp:SphericalCoord = SphericalCoord.ZERO;public function SphericalCoord(radius:Number=0, theta:Number=0, phi:Number=0){this.radius = radius;this.theta = theta;this.phi = phi;}public function clone():SphericalCoord{return new SphericalCoord(this.radius, this.theta, this.phi);}public function copyTo(n:SphericalCoord):void{n.radius = this.radius;n.theta = this.theta;n.phi = this.phi;}public function copyFrom(n:SphericalCoord):void{this.radius = n.radius; this.theta = n.theta; this.phi = n.phi; }public function reset(newradius:Number = 0, newtheta:Number = 0, newphi:Number = 0):void{this.radius = newradius; this.theta = newtheta; this.phi = newphi; }static public function get ZERO():SphericalCoord{return new SphericalCoord(0, 0, 0);}}
}

坐标转换定义类CoordsTransform.cs

package hans_gis.coord
{public class CoordsTransform{public function CoordsTransform(){}public function CartesianToSpherical(coord:CartesianCoord):SphericalCoord{var radius = this.GetModuloFromCartesianCoord(coord);var theta = this.GetThetaFromCartesianCoord(coord);var phi = this.GetPhiFromCartesianCoord(coord);return new SphericalCoord(radius, theta, phi);}protected function GetModuloFromCartesianCoord(coord:CartesianCoord):Number{return Math.sqrt( coord.x*coord.x + coord.y*coord.y + coord.z*coord.z );}protected function GetThetaFromCartesianCoord(coord:CartesianCoord):Number{
//          return Math.atan(Math.sqrt(coord.x*coord.x + coord.y*coord.y)/coord.z);return Math.acos(coord.z/this.GetModuloFromCartesianCoord(coord));}protected function GetPhiFromCartesianCoord(coord:CartesianCoord):Number{return Math.atan(coord.y/coord.x);}public function SphericalToCartesian(coord:SphericalCoord):CartesianCoord{var x = this.GetXFromSphericalCoord(coord);var y = this.GetYFromSphericalCoord(coord);var z = this.GetZFromSphericalCoord(coord);return new CartesianCoord(x, y, z);}protected function GetXFromSphericalCoord(coord:SphericalCoord):Number{return coord.radius*Math.sin(coord.theta)*Math.cos(coord.phi);}protected function GetYFromSphericalCoord(coord:SphericalCoord):Number{return coord.radius*Math.sin(coord.theta)*Math.sin(coord.phi);}protected function GetZFromSphericalCoord(coord:SphericalCoord):Number{return coord.radius*Math.cos(coord.theta);}}
}

实例运行结果

附:实例下载

转载于:https://www.cnblogs.com/hans_gis/archive/2012/11/21/2755126.html

三维空间中直角坐标与球坐标的相互转换相关推荐

  1. c语言中直角坐标求极径极角,极坐标与参数方程基础知识附重点题型

    高中数学回归课本校本教材24 (一)基础知识 参数极坐标 1.极坐标定义:M 是平面上一点,ρ表示OM 的长度,θ是M Ox ∠,则有序实数实数对(,)ρθ,ρ叫极径,θ叫极角:一般地,[0,2)θπ ...

  2. matlab直角坐标转换极坐标,matlab-在MATLAB中怎么将直角坐标转化为极坐标 – 手机爱问...

    Cad中直角坐标和极坐标格式分别是什? CAD中的坐标就是根据数学来使用的.具体说起来有以下几种: 第一,就是常说的笛卡尔坐标,也是最常用的一种,输入格式为(x,y,z),当然在平面问题中就不必输入z ...

  3. 复变函数 | 第一部分 复数

    文章目录 1.1\quad复数的定义 1.2\quad复数的计算与性质 1.2.1\quad复数的计算 1.2.2\quad复数的性质 1.2.3\quad复数的模 1.2.4\quad共轭复数 1. ...

  4. java 处理pdb文件格式_科学网—PDB文件格式说明 - 李继存的博文

    2015-06-05 20:31:19 2017-01-22 20:09:21 据参考资料增补 PDB(Protein Data Bank)是一种标准文件格式, 其中包含原子的坐标等信息, 提交给 P ...

  5. java 处理pdb文件格式_PDB(Protein Data Bank)数据格式详解

    PDB(Protein Data Bank)是一种标准文件格式, 其中包含原子的坐标等信息, 提交给 Protein Data Bank at the Research Collaboratory f ...

  6. 读懂蛋白质PDB文件

    对于从事生物行业的朋友们来说,PDB文件和蛋白质结构是很多人绕不过去的问题.然而对于天天跑电泳过柱子的生物狗来说,PDB文件打开后与天书无异.这里,我转载一篇网上看到的关于PDB文件内记号说明的文章, ...

  7. 从零开始一起学习SLAM | 三维空间刚体的旋转

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 刚体,顾名思义,是指本身不会在运动过程中产生形变的物体,如相机的运 ...

  8. 空间中球坐标与直角坐标的互化(matlab实现)

    目录(觉得不错请三连支持一下) 前言 直角坐标系 球坐标系 互换关系 直角坐标转球坐标 球坐标转直角坐标 代码实现 直角坐标转球坐标 球坐标转直角坐标 试验 前言 坐标系有很多,空间中我们常用的坐标系 ...

  9. 关于极坐标体系思想在三维空间的延伸

    灵感的来源 下面提到的数字,单位均为毫米 来自建筑制图练习册24页第12题,做题过程中无意间想到以极坐标的思想来完成该题目. 此为原题. 原题标准答案采用直角三角形法的变式,但是我这里还想提出另外一种 ...

最新文章

  1. 不要再自己封装各种Util工具类了,这款神仙级框架你值得拥有!
  2. 连载《一个程序猿的生命周期》-27、新招的两位“高管”相继离职
  3. Know more about AWR Parse Statistics
  4. React开发(264):react使用国际化
  5. oracle rac 创建ocr,转:Oracle RAC 添加和删除OCR(10g)
  6. 最近邻插值算法 python实现
  7. OpenGL与gl glu glut freeglut glew glfw封装库关系(十五)
  8. mysql数据词典生成markdown_老板让我把数据库字典导出到Markdown格式的文件
  9. 数据结构试题期中期末考试【含答案】
  10. win10安装双系统
  11. SAP中多层扩展有效地bom
  12. 【BIEE】15_时间维度建立
  13. windows 2012下安装.NET框架时出现组件的文件跟组件清单中的验证信息不匹配,无法安装
  14. 京东EB级全域大数据平台的演进与治理历程
  15. Qt开发技术:QDBus介绍、编译与Demo
  16. 极狐GitLab Helm Registry 的使用
  17. 网页版 linux终端,网页版的Linux-大神之笔
  18. Flask asyncio 异步处理请求
  19. 电脑是台式的,开机的时候,滴滴滴滴一直响,开不了机!(好用)
  20. python3中文编码转换显示

热门文章

  1. html的注释是什么意思,注释是什么意思?
  2. html5对锚的更改,HTML5之锚链接
  3. HoloLens2语音指令实现
  4. Windows下db2数据库许可证过期解决方法
  5. 京东大数据平台进化之路
  6. ink css,ink - 在线工具 - 前端之家
  7. 《 指数基金投资指南 》by 银行螺丝钉 - 笔记 - 3小尾巴~
  8. Service(一、本地服务)
  9. 《Linux C编程环境》 课程大实验 及近期练习题:计算器,复写机,目录树创建,批处理执行器,扫雷
  10. 学计算机高考英语听力考试时间,北京:2020年高考英语听力机考问答