C# Managed DirectX 和 XNA 数学基础

本文介绍了C#中DirectX和XNA的数学基础,包括3D坐标系统(左手与右手坐标系)、Vector2、Vector3、Vector4结构的使用,以及仿射矩阵在2D和3D变换中的应用。详细阐述了如何进行坐标变换、向量表示、矩阵运算,特别是3D变换矩阵的概念和Matrix结构的用途。
摘要由CSDN通过智能技术生成

1、3D坐标系统和坐标


DirectX使用左手坐标系统,XNA使用右手坐标系统(四指绕x、y,看拇指指向)。


将一个左手坐标系统程序转换到右手坐标系统:左手坐标系统中的Z坐标值变为相反数。


2D坐标:Vector2,(x, y)

3D坐标:Vector3,(x, y, z)


特殊的结构:Vector4,最后一个字段Rhw总是为1。

当使用仿射矩阵对3D坐标点进行移位、旋转等复合变换时,点的3D坐标必须使用Vector4结构表示。(看第3点)

根据透视原理,可将3D模型坐标变换为在计算机屏幕上显示的,具有立体感的2D坐标,变换后的点的2D坐标也必须用Vector4表示。


2、向量


一个向量用向量长度和向量方向来表示。

长度和方向都相同的向量是相等的,和向量所在位置无关——即,所有长度相同的平行向量全部相等。

Direct 3D和XNA中,向量用原点到某点坐标的有向线段表示——即,可以用点的坐标表示向量。

Direct 3D和XNA用Vector3结构表示向量。

Vector3结构表示的向量,其长度为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值