3D数学基础:图形和游戏开发(第2版)第7章笔记

极坐标空间只有一个轴(极轴),它通常被描述为来自原点的射线。在数学文献中,极轴通常在图表中指向右,因此在笛卡尔坐标系中,它对应于+x轴。使用二维极坐标定位一个点(r, θ)r定义了点到原点的距离,θ定义了点到原点的方向。对于任何给定的点,有无穷多个极坐标对可以用来描述这个点。这种现象被称为别名( Aliasing)。如果两个坐标对的数值不同,但指向空间中的同一点,则它们被称为彼此的别名。注意,在笛卡尔空间中不会出现别名——空间中的每个点都被分配了一个(x, y)坐标对:点到坐标对的映射是一对一的。一般来说,
摘要由CSDN通过智能技术生成


7.1节描述了二维极坐标。
7.2节给出了一些极坐标比笛卡尔坐标更可取的例子。
7.3节展示了极空间如何在三维中工作,并介绍了圆柱坐标和球面坐标。
最后,7.4节明确指出,极坐标空间既可以用来描述位置,也可以用来描述矢量。

7.1 关于二维极坐标空间

在这里插入图片描述
极坐标空间只有一个轴(极轴),它通常被描述为来自原点的射线。在数学文献中,极轴通常在图表中指向右,因此在笛卡尔坐标系中,它对应于+x轴。

使用二维极坐标定位一个点(r, θ)

  • 步骤1。从原点开始,面向极轴的方向,旋转θ角。θ的正值通常解释为平均逆时针旋转,负值则解释为顺时针旋转。
  • 步骤2。现在从原点向前移动r个单位的距离。到达了极坐标(r, θ)所描述的点。

在这里插入图片描述

r定义了点到原点的距离,θ定义了点到原点的方向。

注意:我们喜欢用度数表示角度,但是计算机更喜欢使用弧度来表示角度。

对于任何给定的点,有无穷多个极坐标对可以用来描述这个点。这种现象被称为别名( Aliasing)。如果两个坐标对的数值不同,但指向空间中的同一点,则它们被称为彼此的别名。注意,在笛卡尔空间中不会出现别名——空间中的每个点都被分配了一个(x, y)坐标对:点到坐标对的映射是一对一的。

一般来说,对于除原点以外的任何一点(r, θ),所有作为(r, θ)别名的极坐标都可以表示为(其中k是任意整数):
( ( − 1 ) k r , θ + 180 ° ) ((-1)^kr, θ+180°) ((1)kr,θ+180°)
一个点的最佳极坐标描述:

  • r >= 0:我们不“向后”测量距离。
  • −180° < θ ≤ 180度:角度限制在1/2圈,使用+180°表示朝“西”。
  • r = 0 => θ = 0。在原点,把角度设为零。

将极坐标对(r, θ)转换为标准形式

  1. 如果r = 0,则赋值θ = 0。
  2. 如果r < 0,则r为负,并向θ加180°。
  3. 如果θ≤−180°,则将θ加360°,直到θ >−180°。
  4. 如果θ > 180°,则将θ减360°,直到θ≤180°。

将极坐标对(r, θ)转换为标准形式C代码:

/**
*@r: 径向距离
*@theta: 弧度为单位的角度
*/
void canonical(float &r, float &theta) {
   
	//声明一个2 * pi (360度) 的常量
	static float TWOPI = 2.0f * PI;
	//检查我们是否正好在原点
	if(r == 0.0f) {
   
	//在原点,则强制theta为零
		theta 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值