绕坐标轴以及任意轴的旋转矩阵的推导

2023-11-07

概述

本文主要是针对《3D数学基础-图形与游戏开发》这本书的读书笔记,这本书前面部分还是讲得挺好的,有时间还是建议读一下。

旋转矩阵的推导

旋转矩阵怎么来的我倒一直都没有概念,这本书里面对旋转矩阵的来历倒是给了我一些启发。
首先从二维的旋转矩阵开始

[ c o s θ s i n θ − s i n θ c o s θ ] \begin{bmatrix} cos\theta & sin\theta \\ -sin\theta & cos\theta \\ \end{bmatrix} [cosθsinθsinθcosθ]
推导的方式就是直接找点代入:
想象点(1,0),绕原点逆时针旋转 θ \theta θ,我们把(1,0)和旋转矩阵相乘,得到的就是旋转矩阵第一行的信息,那显然,第一行就是 c o s θ , s i n θ cos\theta,sin\theta cosθ,sinθ,同理,代入(0,1)到旋转矩阵也能得到旋转矩阵第二行的值。
在这里插入图片描述
不得不承认,这个pdf里面截的图要把人看瞎了,但是问题不大,大概是什么意思还是能明白的。
对于三维旋转绕坐标轴旋转的矩阵来说,推导也是同理的,代入相关的点的坐标即可,图书里面有,但是pdf特别糊,就不截了。也可以理解为三维坐标系投影到二维中,然后运用二维的旋转矩阵公式。
下面就是绕x轴的旋转矩阵,可以理解为在YOZ平面进行旋转,这样的话直接代入上面的二维的公式也行。
[ 1 0 0 0 c o s θ s i n θ 0 − s i n θ c o s θ ] \begin{bmatrix} 1& 0&0\\0&cos\theta & sin\theta \\0& -sin\theta & cos\theta \\ \end{bmatrix} 1000cosθs

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

绕坐标轴以及任意轴的旋转矩阵的推导 的相关文章

  • openGL之API学习(八十四)glGetObjectLabel

    获取命名空间对象的标签 打标签由函数glObjectLabel执行 void glGetObjectLabel GLenum identifier GLuint name GLsizei bufSize GLsizei length cha
  • openGL之API学习(五十六)低模、高模的区别以及各自的使用领域

    高模是高细节高精度的3D模型 高模看上去十分逼真细节非常丰富模型的面数也相当的高 低模是游戏里的说法 可以理解为游戏所使用的模型 高模有很多作用可以用于电影制作 广告等等 在游戏里高模主要是为了烘焙NormalMap 并且运用在游戏低模型上
  • Games101,作业7(模板分析)

    该博客只分析较难理解的函数和用途 以及程序运行方式 简单的函数不再赘述 首先 我们将从程序运行的流程来理解代码框架 之后再按照代码文件来分析整个框架的构造思路 程序流程 main函数进入 构造Scene类 构造场景 Scene scene
  • openGL之API学习(七十四)opengl版本的历史沿革

    OpenGL源于SGI公司为其图形工作站开发的IRIS GL 在跨平台移植过程中发展成为OpenGL SGI在1992年7月发布1 0版 后成为工业标准 由成立于1992年的独立财团OpenGL Architecture Review Bo
  • 实时渲染学习(十)渲染加速算法总结

    参考博文 Real Time Rendering 3rd 提炼总结 十一 第十四章 游戏开发中的渲染加速算法总结 前言 本章主要介绍了一些加速渲染算法 个人认为了解这些加速技术还是很重要的 本章知识概览 常用空间数据结构 Spatial D
  • GAMES101-现代计算机图形学学习笔记(4)作业3

    前言 上篇作业2 本篇将更新作业3相关内容 作业3相关链接 games的作业3链接 我的源码 作业3简述 插值计算 各种shader实现 作业3相关知识笔记 Barycentric Coordinates Blinn Phong Lambe
  • openGL之API学习(二十六)glTexImage2D

    给2维纹理分配显存空间 也可以从内存向显存拷贝数据 void glTexImage2D GLenum target GLint level GLint internalformat GLsizei width GLsizei height
  • openGL之API学习(三十)深度缓冲区深度值为负值

    通过 glReadPixels 0 0 WINDOW WIDTH WINDOW HEIGHT GL DEPTH COMPONENT GL UNSIGNED BYTE tmpPixelsBuffer 从帧缓冲区中读取深度信息 深度值竟然是负值
  • 如何使用PVRTexTool提升移动端图形效果

    导语 本文作者Ben Anuworakarn 是PowerVR 开发技术团队的技术作者 具有计算科学工程知识背景 文中 他针对移动端游戏画面的优化 介绍了图像纹理处理 Mipmapping以及渗色等相关技术 同时 通过充分利用PVRTexT
  • 【PBR系列二】辐射度量学理论

    本文核心知识主要参照 现代计算机图形学入门 闫令琪课程课件PPT 后续光线追踪系列辐射度量学知识也源于此处 辐射度量学理论 在开始之前我们先思考 为什么学习辐射度量学 辐射度量学是基于物理光照的基础 一 辐射能和辐射通量 辐射能 Radia
  • GAMES101笔记_Lec07~09_着色 Shading

    0 我们已经学了什么 What We ve Covered So Far 空间中定义了一个摄像机 通过某些变换使模型摆好姿势 Model 通过观测变换让摄像机放在原点 得到标准的 1 1
  • openGL之API学习(四)纹理操作

    纹理操作代码流程 向着色器传递纹理单元 glUniform1i gSampler 0 向GPU上传纹理数据 GLuint m textureObj glGenTextures 1 m textureObj 生成一个纹理对象 一个纹理对象有多
  • 图形学笔记《Fundamentals of Computer Graphics 4th Edition》——【1】Introduction

    Graphics Areas major areas other areas maybe not core areas Major Applications Graphic APIs Graphics Pipeline Numerical
  • 普通光照模型:unityshader

    我们都知道物体表面的光照是由 自发光 镜面光 高光 环境光 漫反射得出来的 环境光 光照系数 环境光颜色 Ambient K GlobalAmbient 漫反射 Diffuse K LightColor max dot N L 0 反射光线
  • 【openGL2021版】天空盒

    openGL2021版 天空盒 大家好 我是Lampard猿奋 欢迎来到船新的openGL基础系列的博客 今天主要实现的是天空盒 1 什么是天空盒 上周我们已经实现了FPS式的摄像机控制 键盘的 WSAD 可以控制摄像头的前后左右移动 鼠标
  • openGL之API学习(十六)glViewport

    确定要绘制的区域 如果你打算把整个屏幕渲染到一个或大或小的纹理上 你需要用新的纹理的尺寸作为参数再次调用glViewport 要在渲染到你的帧缓冲之前做好 否则只有一小部分纹理或屏幕能够绘制到纹理上 void glViewport GLin
  • 光线追踪渲染实战(五):低差异序列与重要性采样,加速收敛!

    项目代码仓库 GitHub https github com AKGWSB EzRT gitee https gitee com AKGWSB EzRT 目录 前言 1 低差异序列介绍 2 sobol 序列及其实现 2 1 生成矩阵与递推式
  • 游戏开发unity 3d知识系列:(一)用mesh绘制一个三角形网格

    国内讲解这些基础的感觉比较少 在youtube上看到一个比较好的视频 https www youtube com watch v eJEpeUH1EMg
  • 【翻译】Dagre-D3 文档整理和翻译

    地址 github Dagre D3 目录 文章目录 dagre d3 设计优先级 安装 npm Bower Browser Scripts 源代码构建 如何使用Darge 聚焦渲染 例子 配置布局 生成的图像 第三部分例子 推荐阅读 da
  • openGL之API学习(六十三)GL_RASTERIZER_DISCARD

    glEnable GL RASTERIZER DISCARD 使用GL RASTERIZER DISCARD标志作为参数调用glEnable 函数 告诉渲染管线在transform feedback可选阶段之后和到达光栅器前抛弃所有的图元

随机推荐

  • java环境的配置,下载jdK安装及安装

    1 java环境的配置下载jdK安装 2 jdk exe会解析两个文件jdk文件 jre文件 安装步骤 1 JDK jdk1 7 0 75 windows x64 exe 下载 选择 Accept License Agreement 根据系
  • RN开发系列<8>--Redux(1)入门篇

    1 Redux的基本用法 前言 说明 本文只针对移动端的Redux的基本用法进行描述 希望这一篇文章 就能帮助你搞定redux的基本用法 甚至不用再去查阅其他文档 因为我个人脑子比较笨 查阅了很多文档 看了不少视频资料才理解了 2 原理阐述
  • Python 使用函数作为返回值

    视频版教程 Python3零基础7天入门实战视频教程 Python还支持使用函数作为其他函数的返回值 def test bol if bol return add else return sub def add x y return x y
  • 基于Proteus的四位数码管显示

    1实验原理 P0口接断码线 P2口低四位接位选线 第一位数码管的位选线由P2 0来控制 第二位数码管的位选线由P2 1来控制 依次类推 由此可知可以控制P2 0到p2 3引脚 从而控制这个数码管哪一位来显示字符 而通过控制P0口输出断码值来
  • 单片机延时函数实现

    在编写单片机程序时 我们经常要用到延时函数 记得我们在学51单片机时 第一个延时是通过软件延时来实现的 代码如下 void delay volatile uint32 t cnt volatile uint32 t i 0 volatile
  • azkban设置重试不起作用,且有的任务一直running,无日志

    job脚本 foo job type command command su olc pro c bash app script python common file pymain sh coupon user active py retri
  • Python提取整数各个位的数字

    个位 XXX 1 10 十位 XXX 10 10 百位 XXX 100 10 千位 XXX 1000 10 万位 XXX 10000 10 1399 统计最大组的数目 LeetCode https leetcode cn com probl
  • 蓝桥杯Python-2n皇后问题(和别人的想法有点不一样)

    首先附上问题链接 蓝桥杯基础练习VIP 2n皇后问题 C语言网 dotcpp com 问题描述 给定一个n n的棋盘 棋盘中有一些位置不能放皇后 现在要向棋盘中放入n个黑皇后和n个白皇后 使任意的两个黑皇后都不在同一行 同一列或同一条对角线
  • 1034:计算三角形面积

    1034 计算三角形面积 时间限制 1000 ms 内存限制 65536 KB 提交数 52442 通过数 16079 题目描述 平面上有一个三角形 它的三个顶点坐标分别为 x1 y1 x2 y2 x3 y3 那么请问这个三角形的面积是多少
  • VMware Workstation 安装Vmware tools 是 出现vmware tools unavailable

    这个问题是因为虚拟机安装的时候操作系统选择的不对 在Virtual Machine Settings中选择Options 在General中选择正确的操作系统类型 例如Guest operating system 选择Linux Versi
  • vue-cli3使用百度富文本编辑器

    一 安装依赖 npm i vue ueditor wrap 或者 yarn add vue ueditor wrap 二 下载ueditor并将其复制到Static目录下 如图所示 三 引入VueUeditorWrap组件 import V
  • 【C++ STL学习之四】容器list深入学习

    一 list基础 List使用一个双向链表来管理元素 图一显示了list的结构 图一 list的结构 任何型别只要具备赋值和可拷贝两种性质 就可以作为list的元素 二 list的功能 list的内部结构和vector和deque截然不同
  • 【学习笔记】阮一峰的ES6入门

    let const 块作用域 ES6引入块作用域 考虑到环境导致的行为差异太大 应该避免在块级作用域内声明函数 如果确实需要 也应该写成函数表达式 而不是函数声明语句 let let声明的变量只在它所在的代码块有效 let不允许在相同作用域
  • 蓝桥杯经验贴(第十四届蓝桥杯C++B组)

    个人背景 在参加第十四届蓝桥杯前 系统学过基础算法和简单数据结构 能熟练使用C 编写程序 参加过CCPC河北省赛 力扣通过题数1300 省赛和国赛的准备阶段 在https www dotcpp com https dasai lanqiao
  • 计算机网络:TCP 流量控制

    目录 操作系统缓冲区与滑动窗口的关系 窗口关闭 糊涂窗口综合症 参考资料 发送方在发数据给接收方时 要考虑接收方处理能力 如果一直无脑的发数据给对方 但对方处理不过来 那么就会导致触发重发机制 从而导致网络流量的无端的浪费 为了解决这种现象
  • Kafka集群搭建配置与eagle监控界面

    kafka集群环境搭建 首先在多台机器上搭建配置Kafka环境 可以参考Kafak环境搭建 Kafka kafka环境配置以及参数分析 集群搭建配置 对于kafka来说 一个单独的broker意味着kafka集群中只有一个节点 要想增加ka
  • IPFS环境搭建和用ipfs-api访问ipfs网络

    ipfs是去中心化星际文件系统 本文介绍节点软件ipfs环境搭建和使用方法 学习ipfs api在nodejs代码中访问ipfs网络 一 ipfs节点安装与使用 1 1下载节点软件 到官网下载windows版的ipfs节点软件 32位 64
  • Python 过滤次新股、停牌、涨跌停

    过滤次新股 是否涨跌停 是否停牌等条件 def filcon context bar dict tar list def zdt trade stock context bar dict yesterday history 2 1d clo
  • 【表的完整性约束&外键约束】

    外键约束 今天跟大家聊聊这个外键约束 简单来说呢 就是 嗯 关于两个表的操作 对 就是这样的 来跟我一起看看叭 1 什么是外键约束 外键约束 FOREIGN KEY 缩写FK 是用来实现数据库表的参照完整性的 外键约束可以使两张表紧密的结合
  • 绕坐标轴以及任意轴的旋转矩阵的推导

    概述 本文主要是针对 3D数学基础 图形与游戏开发 这本书的读书笔记 这本书前面部分还是讲得挺好的 有时间还是建议读一下 旋转矩阵的推导 旋转矩阵怎么来的我倒一直都没有概念 这本书里面对旋转矩阵的来历倒是给了我一些启发 首先从二维的旋转矩阵