图形学基础 (二)关于旋转

旋转

  • 旋转默认是(0, 0)为中心, 逆时针

    image-20211204100257024

  • 公式推导

image-20211204100357101

假设这样一个正方形来逆时针旋转一个角度, 我们从特殊点出发, 比如(1, 0)

image-20211204100448338

我们可以知道它的边长不会改变, 现在它的位置是(cos θ \theta θ, sin θ \theta θ), 所以对于这两个坐标可以写一个等式

image-20211204100746346

image-20211204100823780

同理可以得到B和D的值

image-20211204100257024

为什么有齐次坐标

image-20211129154346037

而且这不是线性变换, 就不是一个矩阵可以解决的了

增加一个维度就行了, 但是注意这里二维点增加的是1, 2维向量增加的是0

image-20211129154821193

注意上面的是点, 不是向量

为什么会这样呢? 因为向量具有平移不变性,所以你对向量平移就是nothing, 哈哈哈, 所以就是0

下面讲一些好玩的事

image-20211129182513958

  • 首先看第三点, 就理解成一个点沿着向量移动到末尾, 还是一个点,
  • 第四点假如两个点加起来第三维成了2了, 这个怎么看?这里有定义的扩充:

image-20211129182751985

那么在这种定义下,一个点加另一个点表示的就是中点

  • 现在可以写成一个统一的形式

image-20211204101341128

变换的分解

  • 对于一个复杂的变换, 变换的顺序是很重要的

image-20211204102828479

  • 注意向量的应用顺序, 是逐渐从右到左

image-20211204102934530

假如是绕着一个点c而不是原点进行旋转呢?

image-20211204103233658

  • 假设一个点左边是(c,c), 先把它左边减去c, 变到(0, 0) 的位置上, 然后再进行旋转, 再平移c到(c, c)

  • 注意上面的乘的顺序

3D变换

  • 首先类比二维的齐次坐标, 点最后的坐标是1, 向量是0

image-20211204103607467

  • 不等于1的时候除去w

Snipaste_2021-12-06_08-56-49.png

  • 现在的变换矩阵就是(4*4) 了, 最后一行还是(0, 0, 0, 1)

image-20211204103759826

逆变换

image-20211204102602571

等价于乘变换矩阵的逆矩阵

  • 从下面的图可以看出来, 我顺时针旋转的变换矩阵就等于逆时针旋转的逆矩阵

1.png

3D绕轴旋转

  • 这可能是3维旋转中最复杂的东西了, 因为有好几个轴的旋转

  • 坐标系的定义(右手直角坐标系)

image-20211204105218545

这里用右手四指从x出发绕到y, z指的方向就是大拇指的方向, 所以是右手坐标系

  • 定义好了坐标系之后可以先看绕x的逆时针旋转:

image-20211204105412668

  • 同理有绕着y轴的逆时针旋转(这个不太一样):

image-20211204105529007

  • 绕z轴逆时针:

2.png

会发现这里有些不同, 就是绕y轴旋转的时候对z的变换是正的 sin α \alpha α , 这是为什么呢?

  • xyz是3个顺序排列的, x叉乘y得到z, y叉乘z得到x, 但是x叉乘z得到的是-y, z叉乘x得到的才是y
  • 所以绕着y轴逆时针旋转其实可以看成是绕着y轴顺时针旋转

3D一般性旋转

在这里插入图片描述

  • 对于飞机来说, 在它直行的时候可以有如图三种旋转, 所以可以把复杂的旋转分解开来, 分解到轴上的角度叫做欧拉角
Rodrigues’ ROtation Formula

3.png

  • 罗德里格斯公式定义了旋转轴 n和旋转角, 注意这里默认的轴的起点都是两个为0, 一个方向为1, 不存在有别的起点的情况

4.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

live_for_myself

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值