DirectX12(D3D12)基础教程三 线性代数

news/2025/2/22 14:42:56

线性代数是数学的一个分支,它的研究对象是向量,向量空间(或称线性空间),线性变换和有限维的线性方程组。 向量和矩阵是学习3D入门最基本的理论基础。本章重点讲向量和矩阵. 

向量概念

向量最基本的定义就是一个方向长度,如图坐标点(3,4)

根据 勾股定理  \sqrt{x^{2}+y^{2}} 可以计算出它长度是5=\sqrt{3^{2}+4^{2}}也叫做向量的模 方向是与X轴的夹角θ,向量的长度和方向根据坐标可以计算出,通常书写标记为:\binom{3}{4} 通常大家喜欢在字母上面加一横表示向量,如: \bar{V}=\binom{3}{4}

单位向量

有一个特殊类型向量的模(长度)等于1叫做单位向量,把一个向量变成单位向量这叫标准化。任意向量的每个分量除以向量的模就得到它的单位向量。特别是在我们只关心方向不关心模(长度)的时候。比如 \bar{V}=\binom{3}{4}要标准化,先计算模\left | \right |\bar{v}\left | \right | = \sqrt{3^{2}+4^{2}} = 5,然后除以向量的模 ,\binom{3}{4}的单位向量\hat{n} = \frac{\bar{v=}\binom{3}{4}}{5} = \binom{3/5}{4/5}=\binom{0.6}{0.8}。现在我们再计算向量\binom{0.6}{0.8}的模 \left \| \bar{v} \right \| =\sqrt{0.6^{2}+0.8^{2}}=\sqrt{0.36+0.64}=\sqrt{1}=1,再次证实了。

向量运算

向量与标量加减乘除

\binom{X}{Y} [+-*/] Z = \binom{X[+-*/]Z}{Y[+-*/]Z} ,比如加法运算 :\binom{3}{4} + 10 = \binom{3+10}{4+10} = \binom{13}{14}

向量与向量的加减

\binom{X}{Y}[+-]\binom{X2}{Y2} = \binom{X[+-]X2}{Y[+-]Y2}   比如加法运算 :\binom{1}{2}+\binom{3}{4}=\binom{1+3}{2+4} = \binom{4}{6}

以上都比较好理解,不做过多的说明了

向量相乘

普通的乘法在向量上是没有定义的,在3D世界里 ,两种特定情况:1.点乘(Dot Product)记作\bar{v} \cdot \bar{k}2.叉乘(Cross Product)记作\bar{v}\times \bar{k}

1.点乘(Dot Product) ,两个向量的点乘结果等两个向量之间夹角的余弦值,可以算出向量之间夹角的角度,提前是先要标准化。点乘会在计算光照的时候非常有用。比如计算\binom{3}{4}向量与X轴\binom{0}{1}的夹角\Theta,点乘会像是这样\cos\Theta =\binom{0.6}{0.8}\cdot \binom{0}{1} = 0.6*0+0.8*1=0.8

2.叉乘(Cross Product) 叉乘只在3D空间中有定义,它需要两个不平行向量作为输入,生成一个正交于两个输入向量的第三个向量。公式如下:

如看不懂,先放下。

矩阵

现在我们已经讨论了向量的全部内容,是时候看看矩阵了!简单来说矩阵就是一个矩形的数字、符号或表达式数组。矩阵中每一项叫做矩阵的元素(Element)。下面是一个2×3矩阵的例子:\begin{bmatrix} 1 &2 &3 \\ 4& 5& 6 \end{bmatrix} 可以把它看做一个两维数据。

矩阵运算

矩阵与与标量加减乘除比较好理解,比较如加法 \begin{bmatrix} 1 & 2 & 3\\ 4 &5 & 6 \end{bmatrix} + 10 =\begin{bmatrix} 10+1 & 10+2 & 10+3\\ 10+4 &10+5 &10+ 6 \end{bmatrix} = \begin{bmatrix} 11 & 12 & 13\\ 14 &15 & 16 \end{bmatrix}

矩阵相乘

注意事项

1. 只有当左侧矩阵的列数与右侧矩阵的行数相等,两个矩阵才能相乘。
2. 矩阵相乘不遵守交换律也就是说A⋅B≠B⋅A

我们先看一个两个2×2矩阵相乘的例子

\begin{bmatrix} 1 &2 \\ 3& 4 \end{bmatrix} \times \begin{bmatrix} 5 &6 \\ 7& 8 \end{bmatrix} = \begin{bmatrix} 1*5+2*7 &1*6+2*8 \\ 3*5+4*7& 3*6 +4*8\end{bmatrix} =\begin{bmatrix} 19 &22 \\ 43& 50 \end{bmatrix}

未完成 先占位。。。。


http://www.niftyadmin.cn/n/5862403.html

相关文章

华为昇腾910b服务器部署DeepSeek翻车现场

最近到祸一台HUAWEI Kunpeng 920 5250,先看看配置。之前是部署的讯飞大模型,发现资源利用率太低了。把5台减少到3台,就出了他 硬件配置信息 基本硬件信息 按照惯例先来看看配置。一共3块盘,500G的系统盘, 2块3T固态…

Spring Boot集成Swagger API文档:傻瓜式零基础教程

Springfox Swagger 是一个用于构建基于 Spring Boot 的 RESTful API 文档的开源工具。它通过使用注解来描述 API 端点,自动生成易于阅读和理解的 API 文档。Springfox 通过在运行时检查应用程序,基于 Spring 配置、类结构和各种编译时 Java 注释来推断 A…

【C++笔记】C+11深度剖析(三)

【C笔记】C11深度剖析(三) 🔥个人主页:大白的编程日记 🔥专栏:C笔记 文章目录 【C笔记】C11深度剖析(三)前言一. lambda1.1 lambda表达式语法1.2 捕捉列表1.3 lambda的原理 二.新的类功能2.1 默认的移动构造和移动赋值2.2 成员变…

DeepSeek04-导出导入模型文件

一、导出备份模型: 预制条件: 安装了“Git Bash”,需要使用该软件,具体安装教程参见: 超级详细的GitBash使用教程01 查看有哪些模型: ollama list备份模型: 自己编写脚本back_model.sh&#xf…

I²C简介

前言 IC(Inter-Integrated Circuit, 内置集成电路)总线是由Philips公司(现属于恩智浦)在上世纪80年代开发的两线式串行通信总线,用于连接微控制器及其外围设备,控制设备之间的通信。 IC总线的物理拓扑示意…

【CXX】4.1 CXX与Cargo集成配置详解

一、规范设置 在Rust项目中,为了与C代码进行互操作,cxx crate提供了一种便捷的方式。通过cxx-build crate,Cargo可以被扩展为一个C构建系统。这在Cargo.toml文件中通过设置依赖来实现: [dependencies] cxx "1.0"[bui…

Grok 3 开源体验与访问指南

目录 Grok 3 开源体验与访问指南 前言 Grok 3 是什么? 如何访问 Grok 3? 我的初步体验 开源的意义 结语 Grok 3 开源体验与访问指南 前言 就在今天(2025年2月20日),埃隆马斯克的 xAI 宣布 Grok 3 正式开源&#…

【电机控制器】ESP32-C3语言模型——DeepSeek

【电机控制器】ESP32-C3语言模型——DeepSeek 文章目录 [TOC](文章目录) 前言一、简介二、代码三、实验结果四、参考资料总结 前言 使用工具&#xff1a; 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、简介 二、代码 #include <Arduino.h&g…