国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

dx12 龍書第二章學(xué)習(xí)筆記 -- 矩陣代數(shù)

這篇具有很好參考價(jià)值的文章主要介紹了dx12 龍書第二章學(xué)習(xí)筆記 -- 矩陣代數(shù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1.矩陣及其運(yùn)算

矩陣的運(yùn)算:①加②減③標(biāo)量乘法

④矩陣乘法:

矩陣乘法要有意義的條件是矩陣A的列數(shù)和矩陣B的行數(shù)必須相同,所以一般不滿足交換律

dx12 龍書第二章學(xué)習(xí)筆記 -- 矩陣代數(shù)

⑤轉(zhuǎn)置矩陣:

dx12 龍書第二章學(xué)習(xí)筆記 -- 矩陣代數(shù)

⑥矩陣行列式:det A

學(xué)習(xí)行列式的主要目的是:利用它推導(dǎo)出求逆矩陣的公式

方陣A是可逆的,當(dāng)且僅當(dāng)det A ≠ 0

余子陣:去除第i行和第j行得到的(n-1)*(n-1)矩陣0

dx12 龍書第二章學(xué)習(xí)筆記 -- 矩陣代數(shù)

矩陣的行列式是一種遞歸定義,detA的A當(dāng)是二維方陣時(shí),行列式的值就是

元素Aij的代數(shù)余子陣:

dx12 龍書第二章學(xué)習(xí)筆記 -- 矩陣代數(shù)? ?如果為矩陣A中每個(gè)元素分別計(jì)算出Cij,并將其置于矩陣中第i行、第j列的相應(yīng)位置,那么將獲得矩陣A的代數(shù)余子式矩陣

伴隨矩陣:? 代數(shù)余子陣的轉(zhuǎn)置

⑦逆矩陣:

可逆矩陣的逆矩陣是唯一的?

矩陣不存在除法的概念,但提供逆矩陣可以求解某些方程:比如?求解p

2.用DirectXMath庫(kù)處理矩陣:

XMMATRIX : 由4個(gè)XMVECTOR組成,借此使用SIMD技術(shù) --? 4x4的矩陣

// XMMATRIX類表示4×4矩陣

// 內(nèi)部用r來(lái)存儲(chǔ)4個(gè)行向量
XMVECTOR r[4]; 

// 構(gòu)造方法:
// 4個(gè)行向量
XMVECTOR(FXMVECTOR R0,FXMVECTOR R1,FXMVECTOR R2,CXMVECTOR R3); 

// 16個(gè)浮點(diǎn)數(shù)
XMMATRIX(float m00,float m01,...); 

// 16個(gè)浮點(diǎn)數(shù)元素?cái)?shù)組
explicit XMMATRIX(_in_reads_(16) const float *pArray); 

// 拷貝構(gòu)造函數(shù)
XMMATRIX& operator=(const XMMATRIX& M);

XMMATRIX運(yùn)算:

1.兩個(gè)XMMATRIX矩陣:

+ - += -=

* *=

2.XMMATRIX和浮點(diǎn)數(shù):

/ * /= *=

XMMATRIX創(chuàng)建實(shí)例的其他方法:

XMMATRIX XM_CALLCONV XMMatrixSet(
    float m00, float m01, float m02, float m03,
    float m10, float m11, float m12, float m13,
    float m20, float m21, float m22, float m23,
    float m30, float m31, float m32, float m33,    
);

DirectXMath文檔也建議我們用XMFLOAT4X4來(lái)存儲(chǔ)類中的矩陣類型數(shù)據(jù)成員:

struct XMFLOAT4X4{
	union{
		struct{
			float _11,_12,_13,_14;
			float _21,_22,_23,_24;
			float _31,_32,_33,_34;
			float _41,_42,_43,_44;
		};
	};
	float m[4][4];
    // 初始化方式和XMMATRIX類似 -- 1.16個(gè)浮點(diǎn)數(shù)2.浮點(diǎn)數(shù)數(shù)組
    // 還可以指定(行數(shù),列數(shù)),或=從另一個(gè)實(shí)例復(fù)制
    float operator() (size_t Row, size_t Column)const{return m[Row][Column];}
};

①加載方法:

inline XMMATRIX XM_CALLCONV XMLoadFloat4x4(const XMFLOAT4X4* pSource);

②存儲(chǔ)方法:

inline void XM_CALLCONV XMStoreFloat4x4(XMFLOAT4X4* pDestination, FXMMATRIX M);

矩陣函數(shù):直接用于創(chuàng)建特定矩陣

// 返回單位矩陣I
XMMatrixIdentity() 

// bool 判斷是否為單位矩陣
XMMatrixIsIdentity(FXMMATRIX M); 

// 返回乘積AB
XMMatrixMultiply(FXMMATRIX A,CXMMATRIX B); 

// 返回轉(zhuǎn)置矩陣
XMMatrixTranspose(FXMMATRIX M); 

// 返回(det M,det M,det M,det M) -- XMVECTOR類型
XMMatrixDeterminant(FXMMATRIX M); 

// 輸入:pDeterminant是(det M,det M,det M,det M) 返回M的逆矩陣
XMMatrixInverse(XMVECTOR* pDeterminant, FXMMATRIX M); 

假設(shè)傳入函數(shù)的XMVECTOR參數(shù)不超過(guò)兩個(gè),則第一個(gè)XMMATRIX參數(shù)應(yīng)當(dāng)為FXMMATRIX類型,其余的XMMATRIX參數(shù)均應(yīng)當(dāng)為CXMMATRIX類型

在32位Windows操作系統(tǒng)上的__fastcall調(diào)用約定中,XMMATRIX類型的參數(shù)是不能傳至SSE/SSE2寄存器的,因?yàn)檫@些寄存器只支持3個(gè)XMVECTOR參數(shù)傳入(XMMATRIX視為4個(gè)XMVECTOR),所以只能通過(guò)堆棧來(lái)加以引用?

// 32位
typedef const XMMATRIX& FXMMATRIX;
typedef const XMMATRIX& CXMMATRIX;

// 64位
typedef const XMMATRIX FXMMATRIX;
typedef const XMMATRIX& CXMMATRIX;

代碼示例:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-501235.html

#include <windows.h> // XMVerifyCPUSupport()函數(shù)
#include <DirectXMath.h>
#include <DirectXPackedVector.h>
#include <iostream>
using namespace DirectX;
using namespace DirectX::PackedVector;
using namespace std;

ostream& XM_CALLCONV operator<<(ostream& os, FXMMATRIX m)
{
	XMFLOAT4X4 dest;
	XMStoreFloat4x4(&dest, m);

	for (int i = 0; i < 4; i++) {
		for (int j = 0; j < 4; j++) {
			os << dest.m[i][j] << " ";
		}
		os << "\n";
	}
	return os;
	// 也可以通過(guò)cout遍歷打印FXMMATRIX的XMVECTOR數(shù)組成員r
}

int main()
{
	cout.setf(ios_base::boolalpha);

	// 檢查是否支持SSE2指令集
	if (!XMVerifyCPUSupport())
	{
		cout << "direct math not supported" << endl;
		return 0;
	}

	XMMATRIX m1 = XMMatrixIdentity();
	cout << m1 << endl;

	XMMATRIX m2 = XMMatrixSet(
		1.f, 0.f, 0.f, 0.f,
		0.f, 2.f, 0.f, 0.f,
		0.f, 0.f, 4.f, 0.f,
		1.f, 2.f, 3.f, 1.f
	);
	cout << m2 << endl;

	XMMATRIX m3 = XMMatrixTranspose(m2);
	cout << m3 << endl;

	cout << m2 * m3 << endl;
	cout << 2 * m1 << endl;
	cout << m3 - m2 << endl;

	XMVECTOR v = XMMatrixDeterminant(m2);
	XMMATRIX m4 = XMMatrixInverse(&v, m2);
	cout << m4 << endl;
	
}

到了這里,關(guān)于dx12 龍書第二章學(xué)習(xí)筆記 -- 矩陣代數(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Rx.NET in Action 第二章學(xué)習(xí)筆記

    Rx.NET in Action 第二章學(xué)習(xí)筆記

    本章節(jié)涵蓋的內(nèi)容: 不使用Rx的工作方式 向項(xiàng)目中添加Rx 創(chuàng)建你的第一個(gè)Rx應(yīng)用程序 Rx 的目標(biāo)是協(xié)調(diào)和統(tǒng)籌來(lái)自社交網(wǎng)絡(luò)、傳感器、用戶界面事件等不同來(lái)源的基于事件的異步計(jì)算。例如,建筑物周圍的監(jiān)控?cái)z像頭和移動(dòng)傳感器會(huì)在有人靠近建筑物時(shí)觸發(fā),并從最近的攝像頭

    2024年02月12日
    瀏覽(21)
  • Windows高級(jí)調(diào)試(學(xué)習(xí)筆記)-第二章-調(diào)試器介紹

    Windows高級(jí)調(diào)試(學(xué)習(xí)筆記)-第二章-調(diào)試器介紹

    2.1.1 Debugger Types調(diào)試器類型 User Mode Deduggers(用戶態(tài)調(diào)試器) 實(shí)時(shí)調(diào)試(Living Debugging)、事后調(diào)試(Postmortem Debugging) 三個(gè)用戶態(tài)調(diào)試器:cdb.exe、nstd.exe及windbg.exe Kernel Mode Debugger(內(nèi)核態(tài)調(diào)試器) 可以分析計(jì)算機(jī)系統(tǒng) 二個(gè)內(nèi)核態(tài)調(diào)試器:kd.exe及windbg.exe 2.1.2 Debugger Commands調(diào)試器命令 buil

    2024年01月18日
    瀏覽(58)
  • 《MetaGPT智能體開(kāi)發(fā)入門》學(xué)習(xí)筆記 第一章第二章

    使用從 - 通過(guò)github倉(cāng)庫(kù)獲取MetaGPT 代碼拉下來(lái)后在config文件夾中配置chatGPT key 使用的python環(huán)境為3.9.2 metaGPT代碼下載后在metagpt文件夾中找statup.py文件,運(yùn)行以下命令,我是沒(méi)有成功可能是chatgpt沒(méi)錢 智能體 = LLM+觀察+思考+行動(dòng)+記憶 多智能體 = 智能體+環(huán)境+SOP+評(píng)審+路由+訂閱+經(jīng)

    2024年01月17日
    瀏覽(47)
  • Django學(xué)習(xí)筆記:第二章django的安裝和創(chuàng)建應(yīng)用

    終端運(yùn)行 查看django是否安裝成功 在控制臺(tái)運(yùn)行 在特定文件夾內(nèi)打開(kāi)終端運(yùn)行 生成 進(jìn)入上圖的Scripts文件夾內(nèi),打開(kāi)終端 先正常安裝VSCode 再安裝python插件 安裝Django插件,搜索django,安裝前兩個(gè) 特點(diǎn) 功能完善,開(kāi)發(fā)速度快,安全性強(qiáng) 有完善的在線文檔 模型自帶數(shù)據(jù)庫(kù)ORM組件

    2024年02月16日
    瀏覽(51)
  • 【UnityShader入門精要學(xué)習(xí)筆記】第二章(2)GPU流水線

    【UnityShader入門精要學(xué)習(xí)筆記】第二章(2)GPU流水線

    本系列為作者學(xué)習(xí)UnityShader入門精要而作的筆記,內(nèi)容將包括: 書本中句子照抄 + 個(gè)人批注 項(xiàng)目源碼 一堆新手會(huì)犯的錯(cuò)誤 潛在的太監(jiān)斷更,有始無(wú)終 總之適用于同樣開(kāi)始學(xué)習(xí)Shader的同學(xué)們進(jìn)行有取舍的參考。 在上節(jié)筆記中,我們學(xué)習(xí)了圖像渲染流水線的基本過(guò)程,從應(yīng)用

    2024年02月22日
    瀏覽(24)
  • 《EDA技術(shù)實(shí)用教程(第六版(黃繼業(yè), 潘松))》學(xué)習(xí)筆記——第二章

    《EDA技術(shù)實(shí)用教程(第六版(黃繼業(yè), 潘松))》學(xué)習(xí)筆記——第二章

    PLD(Programmable Logic Device):可編程邏輯器件 RAM(Random Access Memory):隨機(jī)訪問(wèn)存儲(chǔ)器 DRAM(Dynamic Random Access Memory):動(dòng)態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器 SRAM(Static Random Access Memory):靜態(tài)隨機(jī)訪問(wèn)存儲(chǔ)器 ROM(Read-Only Memory):只讀存儲(chǔ)器 PROM(Programmable Read-Only Memory):可編程只讀存儲(chǔ)器

    2024年01月18日
    瀏覽(58)
  • 【UnityShader入門精要學(xué)習(xí)筆記】第二章(1)了解渲染流水線

    【UnityShader入門精要學(xué)習(xí)筆記】第二章(1)了解渲染流水線

    本系列為作者學(xué)習(xí)UnityShader入門精要而作的筆記,內(nèi)容將包括: 書本中句子照抄 + 個(gè)人批注 項(xiàng)目源碼 一堆新手會(huì)犯的錯(cuò)誤 潛在的太監(jiān)斷更,有始無(wú)終 總之適用于同樣開(kāi)始學(xué)習(xí)Shader的同學(xué)們進(jìn)行有取舍的參考。 什么是流水線?書中舉了一個(gè)生產(chǎn)洋娃娃的例子。一個(gè)洋娃娃的

    2024年01月25日
    瀏覽(20)
  • Linux高性能服務(wù)器編程 學(xué)習(xí)筆記 第二章 IP協(xié)議詳解

    Linux高性能服務(wù)器編程 學(xué)習(xí)筆記 第二章 IP協(xié)議詳解

    本章從兩方面探討IP協(xié)議: 1.IP頭部信息。IP頭部出現(xiàn)在每個(gè)IP數(shù)據(jù)報(bào)中,用于指定IP通信的源端IP地址、目的端IP地址,指導(dǎo)IP分片和重組,指定部分通信行為。 2.IP數(shù)據(jù)報(bào)的路由和轉(zhuǎn)發(fā)。IP數(shù)據(jù)報(bào)的路由和轉(zhuǎn)發(fā)發(fā)生在除目標(biāo)機(jī)器外的所有主機(jī)和路由器上,它們決定數(shù)據(jù)報(bào)是否應(yīng)

    2024年02月09日
    瀏覽(31)
  • 《Flink學(xué)習(xí)筆記》——第二章 Flink的安裝和啟動(dòng)、以及應(yīng)用開(kāi)發(fā)和提交

    《Flink學(xué)習(xí)筆記》——第二章 Flink的安裝和啟動(dòng)、以及應(yīng)用開(kāi)發(fā)和提交

    ? 介紹Flink的安裝、啟動(dòng)以及如何進(jìn)行Flink程序的開(kāi)發(fā),如何運(yùn)行部署Flink程序等 2.1 Flink的安裝和啟動(dòng) 本地安裝指的是單機(jī)模式 0、前期準(zhǔn)備 java8或者java11(官方推薦11) 下載Flink安裝包 https://flink.apache.org/zh/downloads/ hadoop(后面Flink on Yarn部署模式需要) 服務(wù)器(我是使用虛擬

    2024年02月10日
    瀏覽(17)
  • 【操作系統(tǒng)OS】學(xué)習(xí)筆記:第二章 進(jìn)程與線程 (上)【哈工大李治軍老師】

    【操作系統(tǒng)OS】學(xué)習(xí)筆記:第二章 進(jìn)程與線程 (上)【哈工大李治軍老師】

    基于本人觀看學(xué)習(xí) 哈工大李治軍老師主講的操作系統(tǒng)課程 所做的筆記,僅進(jìn)行交流分享 特此鳴謝李治軍老師,操作系統(tǒng)的神作! 如果本篇筆記幫助到了你,還請(qǐng)點(diǎn)贊 關(guān)注 支持一下 ???)!! 主頁(yè)專欄有更多,如有疑問(wèn)歡迎大家指正討論,共同進(jìn)步! 給大家跳段街舞感謝支持

    2024年02月02日
    瀏覽(91)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包