首页 > 其他分享 >第七章:极坐标

第七章:极坐标

时间:2023-10-24 22:45:33浏览次数:31  
标签:笛卡尔 circ 二维 坐标 第七章 theta 极坐标

第七章:极坐标系

我们将介绍其它的用于绘制空间和位置的坐标系。这些坐标系不像笛卡尔坐标系那样「横平竖直」,所以会用到许多三角函数它们一定会勾起你的高中回忆,但它们在很多其它领域的实际问题上,能比笛卡尔坐标系表现得更好,还请重视。就来一起看看吧~

1.关于二维极坐标空间

除了笛卡尔坐标系里的\(x、y\),还有其它方法,用同样仅两个数字来定位二维平面点的位置吗?当然有办法:
image
可以看到,它也有一个坐标原点,以轮盘指针的方式来描述位置,通过表示半径的 \(r\) 和表示角度的 \(\theta\)来进行定位。
image
看起来不复杂,但我们在初中学习角度时就做过角度化简的题目,因此我们会想,这个角度有范围限制吗?比如上图的\((1,-90^\circ)\)可以叫\((1,270^\circ)\)吗?对于那些钝角的点像\((3,135^\circ)\),它们的 \(r\) 算正数还是负数?
答案是:是的。一个点在极坐标中可以有多个名字,我们称这种情况为别名
除了原点,其它的点都可以表示为\(((-1)^kr,\theta+k180^\circ)\),\(k\)是任意的整数。当然,为了避免表达过于混乱,我们还是给出了规范坐标,它的规则如下:
image
不错,有这规范后就好多了。现在来谈谈二维笛卡尔坐标系和极坐标之间的变换。如果你有学过通过单位圆推导出三角函数,那接下来的变换就非常简单且熟悉了。
image
把二维笛卡尔坐标变换为极坐标:
image
那反过来的话:\(r=\sqrt{x^2+y^2}\),\(\theta=\arctan(\frac{y}{x})\) 即可……吗?
对于 \(r\) 的确可以,但 \(\theta\) 如果仅仅这么求的话就会出错!一来,当 \(x=0\) 时,除法部分就有问题了;二来,\(\arctan\)得到的结果范围只有\(\begin{bmatrix}-90^\circ, +90^\circ\end{bmatrix}\),不能规范表达原本的角度。
所以我们要人为对计算结果做科学的二次处理,本书作者将它写成了函数\(atan2(y,x)\)来替换:
image
所以,最终的变换方法为:
image

2.为什么使用极坐标

极坐标有别名、三角函数、角度表示等问题,比笛卡尔坐标复杂多了,有什么非用不可的场合吗?
其实人类在描述位置时,往往并不使用笛卡尔坐标,比如什么“六点钟方向”、“沿东偏北45度方向走100米”……尤其是球面,我们地球的经纬网坐标就是一种三维的极坐标。
那在游戏领域呢?常见的场合是需要用到瞄准的情况,因为这通常只涉及角度,极坐标可以比笛卡尔坐标更容易使用。

3.关于三维极坐标空间

现在我们已经知道了二维极坐标算是个圆,是弯的。那三维空间中这个第三个坐标应该是直的还是弯的呢?答案是都可以。当是直的时候,整个坐标空间就是个圆柱,我们称为圆柱坐标;是弯的时候,整个坐标空间就会是个球。我们称为球面坐标
我们先来看看比较简单的圆柱坐标:
image
只是在原本二维极坐标的基础上加了个z,没什么好说的。至于它与三维笛卡尔坐标之间的变换,我想你也猜到了,就是在二维变换的基础上,多考虑一个z而已,z还和笛卡尔坐标中的z一样,因此可以完全不用变换它。

接下来是更常见的三维极坐标:球面坐标。
image
可以看出来,球面坐标在二维的基础上又多出了一个与\(z轴\)的角度 \(\phi\)。一长度两角度的表示——\((r,\theta,\phi)\),就可以定位三维空间下的点。
这本书中,我们用右手系统。为了更容易理解,我们把水平角度 \(\theta\) 改名为 \(h\),即航向(Heading)。垂直角度 \(\phi\)改名为\(p\),即俯仰(Pitch)。
image
当然,球面坐标也有别名,我们也要做个规范球面坐标的规范。但这次的情况会比二维更复杂些,还会遇到一种叫「万向节死锁」的情况。这里就暂时提一嘴,就直接上结论吧:
image
那最后也来谈谈三维笛卡尔坐标和球面坐标的之间的变换吧。
首先,将三维极坐标换为笛卡尔坐标,同样借助直角三角形(不过,这次是两个),可以比较容易算出以下结果(这些结果只是对于右手规则情况的):
image
接下来是由笛卡尔坐标变换为三维极坐标:

  1. \(r=\sqrt{x^2+y^2+z^2}\)
  2. \(h=atan2(x,z)\)这个和二维一样;
  3. \(p=\arcsin(\frac{-y}{r})\),幸好arcsin函数的结果正好符合p标准规范。

完毕!

标签:笛卡尔,circ,二维,坐标,第七章,theta,极坐标
From: https://www.cnblogs.com/OwlCat/p/17785609.html

相关文章

  • 微机原理与接口技术-第七章输入输出接口
    目录I/O接口概述I/O接口的典型结构基本功能I/O端口的编址独立编址统一编址输入输出指令I/O寻址方式I/O数据传输量I/O保护16位DOS应用程序DOS平台的源程序框架DOS功能调用无条件传送和查询传送无条件传送三态缓冲器锁存器接口电路I/O接口概述I/O接口的典型结构内部结构I/O接口......
  • EM@极坐标系@曲线的极坐标方程
    文章目录abstract极坐标系@极坐标和直角坐标的变换公式直角坐标平移公式曲线的极坐标方程圆的极坐标方程圆锥曲线的极坐标方程平面上的极坐标在平面上取:一个顶点,(称为极点)由点出发的一条射线,(称为极轴)一个长度单位计算角度的正方向(通常取逆时针方向),这四个要素合......
  • 苍穹外卖-第七章订单支付
    1.导入地址簿功能代码1.1需求分析和设计1.1.1产品原型地址簿,指的是消费者用户的地址信息,用户登录成功后可以维护自己的地址信息。同一个用户可以有多个地址信息,但是只能有一个默认地址。对于地址簿管理,我们需要实现以下几个功能:查询地址列表新增地址修改地址删除地址......
  • 《Unix/Linux系统编程》教材学习笔记第七章、第八章
    chapter7文件操作级别文件操作分五个级别,从低到高排序如下:1.硬件级别:硬件级别的文件操作包括fdisk:将硬盘、U盘或SDC盘分区。mkfs:格式化磁盘分区,为系统做好准备。fsck:检查和维修系统。碎片整理:压缩文件系统中的文件。其中大多说是针对系统的实用程序。2.操作系统内核中......
  • linux 之路 第七章
    第七章磁盘陈列技术提高硬盘的读写速度解决硬盘损坏后数据丢失的情况1.DAID独立冗余磁盘阵列DAID0两块设备,提升数倍,rAID1两块盘,同时写入盘里,增加数据安全性,成本高使用率降低50%rAID5最少三块盘就可以做rAID5 保存的奇偶校验和写入到多个硬盘的校验和rAID10rADI1和rAID0组合......
  • Python,OpenCV的图像直角坐标系转极坐标系的函数
    Hough圆检测获取瓶口位置和大小'''hough圆变换'''cimg=cv2.cvtColor(bottle,cv2.COLOR_GRAY2BGR)#转换成彩色图circles=cv2.HoughCircles(median,cv2.HOUGH_GRADIENT,1,100,param1=100,param2=60,minRadius=150,maxRadius=160)......
  • MySQL篇:第七章_详解mysql存储过程&函数
    存储过程含义:一组经过预先编译的sql语句的集合好处:1、提高了sql语句的重用性,减少了开发程序员的压力2、提高了效率3、减少了传输次数分类:1、无返回无参2、仅仅带in类型,无返回有参3、仅仅带out类型,有返回无参4、既带in又带out,有返回有参5、带inout,有返回有参注意:in、o......
  • 《python从入门到实践》第七章习题记录
    点击查看代码#7-1汽车租赁:编写一个程序,询问用户要租赁什么样的汽车,并打印一条消息,如“LetmeseeifIcanfindyouaSubaru”。car=input("whichcardoyoulike?>")print(f"LetmeseeifIcanfindyoua{car}")#7-2餐馆订位:编写一个程序,询问用户有多少人用......
  • 架构:第七章:基于Dubbo+Zookeeper项目架构
    Dubbo:简单的介绍一下Dubbo?(Dubbo是什么)dubbo就是个服务调用的东东。为什么怎么说呢?因为Dubbo是由阿里开源的一个RPC分布式框架那么RPC是什么呢?就是不同的应用部署到不同的服务器上,应用之间想要调用没有办法直接调用,因为不在一个内存空间,需要通过网络通讯来调用,或者传达调......
  • MongoDB :第七章:总结一下学习MongoDB的心得
    创建了数据库runoob:userunoobswitchedtodbrunoobdbrunoob查看所有数据库>showdbsadmin0.000GBlocal0.000GB>注意:MongoDB中默认的数据库为test,如果你没有创建新的数据库,集合将存放在test数据库中。在MongoDB中,集合只有在内容插入后才会创建!就是......