Direct3D中常用的数学计算方法

Direct3D中常用的数学计算方法总结

FLOAT D3DXVec3Length(CONST D3DXVECTOR3* pV)

D3DXVECTOR3* WINAPI D3DXVec3Normalize(D3DXVECTOR3* pOut,CONST D3DXVECTOR3* pV)

FLOAT D3DXVec3Dot(CONST D3DXVECTOR3* pV1,CONST D3DXVECTOR3* pV2)

D3DXVECTOR3* D3DXVec3Cross(D3DXVECTOR3* pOut,CONST D3DXVECTOR3* pV1,CONST D3DXVECTOR3* pV2)

D3DXMATRIX* WINAPI D3DXMatrixInverse(D3DXMATRIX* pOut,FLOAT* pDeterminant,CONST D3DXMATRIX* pM)

D3DXMATRIX* WINAPI D3DXMatrixTranspose(D3DXMATRIX* pOut,CONST D3DXMATRIX* pM)

D3DXMATRIX* WINAPI D3DXVec3TransformCoord(D3DXVECTOR3* pOut,CONST D3DXVECTOR3* pV,CONST D3DXMATRIX* pM)

D3DXMATRIX* WINAPI D3DXVec3TransformNormal(D3DXVECTOR3* pOut,CONST D3DXVECTOR3* pV,CONST D3DXMATRIX* pM)

D3DXMATRIX* WINAPI D3DXMatrixTranslation(D3DXMATRIX* pOut,FLOAT x,FLOAT y,FLOAT z)

D3DXMATRIX* WINAPI D3DXMatrixScaling(D3DXMATRIX* pOut,FLOAT sx,FLOAT sy,FLOAT sz)

D3DXMATRIX* WINAPI D3DXMatrixRotationX(D3DXMATRIX* pOut,FLOAT Angle)

D3DXMATRIX* WINAPI D3DXMatrixRotationY(D3DXMATRIX* pOut,FLOAT Angle)

D3DXMATRIX* WINAPI D3DXMatrixRotationZ(D3DXMATRIX* pOut,FLOAT Angle)

D3DXMATRIX* WINAPI D3DXMatrixRotationAxis(D3DXMATRIX* pOut,CONST D3DXVECTOR3* pV,FLOAT Angle)

D3DXPLANE* WINAPI D3DXPlaneFromPoints(D3DXPLANE* pOut,CONST D3DXVECTOR3* pV1,CONST D3DXVECTOR3* pV2,CONST D3DXVECTOR3* pV3)

D3DXPLANE* WINAPI D3DXPlaneFromPointNormal(D3DXPLANE* pOut,CONST D3DXVECTOR3* pV,CONST D3DXVECTOR3* pNormal)

D3DXVECTOR3* WINAPI D3DXPlaneIntersectLine(D3DXVECTOR3* pOut,CONST D3DXPLANE* pP,CONST D3DXVECTOR3* pV1,CONST D3DXVECTOR3* pV2)

FLOAT D3DXPlaneDotCoord(CONST D3DXPLANE* pP,CONST D3DXVECTOR3* pV)

D3DXPLANE* WINAPI D3DXPlaneNormalize(D3DXPLANE* pOut,CONST D3DXPLANE* pP)

typedef struct D3DXPLANE                         //平面

{

#ifdef __cplusplus

public:

D3DXPLANE() {}

D3DXPLANE( CONST FLOAT* );

D3DXPLANE( CONST D3DXFLOAT16* );

D3DXPLANE( FLOAT a, FLOAT b, FLOAT c, FLOAT d );

operator FLOAT* ();

operator CONST FLOAT* () const;

D3DXPLANE& operator *= ( FLOAT );

D3DXPLANE& operator /= ( FLOAT );

D3DXPLANE operator + () const;

D3DXPLANE operator - () const;

// binary operators

D3DXPLANE operator * ( FLOAT ) const;

D3DXPLANE operator / ( FLOAT ) const;

friend D3DXPLANE operator * ( FLOAT, CONST D3DXPLANE& );

BOOL operator == ( CONST D3DXPLANE& ) const;

BOOL operator != ( CONST D3DXPLANE& ) const;

#endif //__cplusplus

FLOAT a, b, c, d;

} D3DXPLANE, *LPD3DXPLANE;

D3DXMATRIX* WINAPI D3DXMatrixLookAtLH(

D3DXMATRIX* pOut,

CONST D3DXVECTOR3* pEye,

CONST D3DXVECTOR3* pAt,

CONST D3DXVECTOR3* pUp

);

D3DXMATRIX* WINAPI D3DXMatrixPerspectiveFovLH(

D3DXMATRIX* pOut,

FLOAT fovy,

FLOAT Aspect,

FLOAT zn,

FLOAT zf

);

时间: 2024-10-09 16:21:51

Direct3D中常用的数学计算方法的相关文章

iOS开发中常用的数学函数

/*---- 常用数学公式 ----*/ //指数运算 3^2 3^3 NSLog(@"结果 %.f", pow(3,2)); //result 9 NSLog(@"结果 %.f", pow(3,3)); //result 27 //开平方运算 NSLog(@"结果 %.f", sqrt(16)); //result 4 NSLog(@"结果 %.f", sqrt(81)); //result 9 //进一 NSLog(@&q

编程中常用的数学方法以及常数

只是列举了一些比较常用的,具体的可以查看Math.h文件 算术函数: int rand():返回int型随机数 int random():返回long型随机数 abs:返回整形绝对值 int abs(int) float fabsf(float) double fabs(double) long double fabsl(long double) floor():返回不大于浮点数的最大整数 float floorf(float) double floor(double) long double

C中常用的数学函数

rand() ----随机数 abs() / labs() ----整数绝对值 fabs() / fabsf() / fabsl() ----浮点数绝对值 floor() / floorf() / floorl() ----向下取整 ceil() / ceilf() / ceill() ----向上取整 round() / roundf() / roundl() ----四舍五入 sqrt() / sqrtf() / sqrtl() ----求平方根 fmax() / fmaxf() / fma

《逐梦旅程 WINDOWS游戏编程之从零开始》笔记6——Direct3D中的顶点缓存和索引缓存

第12章 Direct3D绘制基础 1. 顶点缓存 计算机所描绘的3D图形是通过多边形网格来构成的,网网格勾勒出轮廓,然后在网格轮廓的表面上贴上相应的图片,这样就构成了一个3D模型.三角形网格是构建物体模型的基本单元,而一个三角形有3个顶点,为了能够使用大量三角形组成三角形网格来描述物体,需要首先定义号三角形的顶点(Vertex),3个顶点确定一个三角形,顶点除了定义每个顶点的坐标位置外,还还含有颜色等其他属性. 在Direct3D中,顶点的具体表现形式是顶点缓存,顶点缓存保存了顶点数据的内存空

javascript中常用函数汇总

js中函数很多,在实际项目开发中,函数的应用可以很大程度上简化我们的代码,所以在此记下开发中js中常用的函数,增强记忆. 1.isNaN(X):函数用于检查其参数是否是非数字值. 如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true.如果 x 是其他值,则返回 false.(是非数字值则为true,是数字则返回false) isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字.当然也可以用

java中常用的工具类(二)

下面继续分享java中常用的一些工具类,希望给大家带来帮助! 1.FtpUtil Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

java中常用的工具类

一.String工具类 package com.itjh.javaUtil; import java.util.ArrayList; import java.util.List; /** * * String工具类. <br> * * @author 宋立君 * @date 2014年06月24日 */ public class StringUtil { private static final int INDEX_NOT_FOUND = -1; private static final St

poj 1905 Expanding Rods (数学 计算方法 二分)

题目链接 题意:将长度为L的棒子卡在墙壁之间.现在因为某种原因,木棒变长了,因为还在墙壁之间,所以弯成了一个弧度,现在求的是弧的最高处与木棒原先的地方的最大距离. 分析: 下面的分析是网上别人的分析: 设弦长为L0(即原长),弧长为L1=(1+n*C)*l0,目标值为h,半径为R,弧所对圆心角为2θ(弧度制).可以得到以下方程组:圆的弧长公式:L1=2θR三角函数公式:L0=2*R*sinθ,变换得θ=arcsin(L0/(2*R))勾股定理:R^2=(R-h)^2+(0.5*L0)^2,变换得

c#中常用的js语句

1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document) 5.得到表单中元素的名称和值:document.getElementById("表单中元素的ID號").name(或value) 6.一个小写转大