- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
动漫游戏开发技术习题集
1.向量有哪些重要属性?举例说明,在3D游戏中向量的作用。
向量的两个重要属性是长度和方向。在3D游戏中可以表示例子的速度和加速度,光线的走向,多边形的朝向。
2.向量的数学表示方法以及在D3D中采用何种结构体来表示一个三维向量。
数学表示方法:N=(Nx,Ny,Nz)。
D3D中 typedef struct D3DVECTOR
{float x,y,z;} D3DVECTOR;
3.向量长度的计算方法以及如何在D3D中计算向量的长度。
||u||=sqrt(Ux*Ux+Uy*Uy+Uz*Uz)
在D3D中, FLOAT D3DXVec3Length(CONST D3DVECTOR3 *pV);
D3DXVECTOR3 v(1.0f, 2.0f, 3.0f); float magnitude = D3DXVec3Length( v ); // = sqrt(14)
4.向量的加、减,数乘、点积、叉积运算方法,并用简单的程序实现上述运算。
;
D3DXVECTOR3 u(2.0f, 0.0f, 1.0f);
D3DXVECTOR3 v(0.0f, -1.0f, 5.0f);
// (2.0 + 0.0, 0.0 + (-1.0), 1.0 + 5.0)
D3DXVECTOR3 sum = u + v; // = (2.0f, -1.0f, 6.0f)
D3DXVECTOR3 u(2.0f, 0.0f, 1.0f);
D3DXVECTOR3 v(0.0f, -1.0f, 5.0f);
D3DXVECTOR3 difference = u - v; // = (2.0f, 1.0f, -4.0f)
D3DXVECTOR3 u(1.0f, 1.0f, -1.0f);
D3DXVECTOR3 scaledVec = u * 10.0f; // = (10.0f, 10.0f, -10.0f)
FLOAT D3DXVec3Dot( // Returns the result.
CONST D3DXVECTOR3* pV1, // Left sided operand.
CONST D3DXVECTOR3* pV2 // Right sided operand.);
D3DXVECTOR3 u(1.0f, -1.0f, 0.0f);
D3DXVECTOR3 v(3.0f, 2.0f, 1.0f);
// 1.0*3.0 + -1.0*2.0 + 0.0*1.0
// = 3.0 + -2.0
float dot = D3DXVec3Dot( u, v ); // = 1.0
D3DXVECTOR3 *D3DXVec3Cross(
D3DXVECTOR3* pOut, // Result.
CONST D3DXVECTOR3* pV1, // Left sided operand.
CONST D3DXVECTOR3* pV2 // Right sided operand.
);
5.在D3D中如何表示一个4*4的矩阵。在D3D中如何获得一个平移、旋转、比例变换矩阵。
平移
D3DXMATRIX *D3DXMatrixTranslation(
D3DXMATRIX* pOut, // 返回平移后的矩阵. FLOAT x, // x轴移动的单位
FLOAT y, // y轴移动的单位 FLOAT z // z轴移动的单位);
旋转
D3DXMATRIX *D3DXMatrixRotationX(
D3DXMATRIX* pOut, // 返回旋转后的矩阵
FLOAT Angle // Angle是旋转的弧度
);
比例
D3DXMATRIX *D3DXMatrixScaling(
D3DXMATRIX* pOut, // 返回缩放后的矩阵
FLOAT sx, // x轴缩放的比例
FLOAT sy, // y轴缩放的比例
FLOAT sz // z轴缩放的比例.);
6.如果一个物体先向X轴正向平移5个单位,然后绕Y轴旋转45度并整体放大2倍,请求出该物体对应的旋转矩阵。
7.已知平面的一个点P0以及垂直于该平面的一条法向矢量n,请表示出该平面,并采用适当的程序创建该平面。
该平面为p点的集合,n*(p-p0)=0;
这里a, b和c是平面法向量n的成员,d就是那个常数。
8.如何判断一个点是否在某个平面上?
例如,假设平面(n, d),我们能判定点p和平面的关系:
假如n·p + d = 0,那么点p与平面共面。
假如n·p + d 0,那么点p在平面的前面且在平面的正半空间里。
假如n·p + d 0,那么点p
您可能关注的文档
- 人教版语文四年级上3.鸟的天堂.ppt
- 人教版政治高一必修二政治生活第2单元第4课第2框课件:权利的行使_需要监督(24张ppt).ppt
- 人教版语文必修二《赤壁赋》ppt课件.ppt
- 人教版选修5《有机化学基础》期末测试题.docx
- 《100以内的加法(不进位加法)》PPT课件要素.ppt
- 人教版道德与法治初一第二课第一框《学习伴成长》.ppt
- 《18我的伯父鲁迅先生》课件ppt要素.ppt
- 《2007高考复习如何解答完型填空》要素.ppt
- 人教版高一物理必修一1.3 运动快慢的描述——速度 课件 (共20张PPT).ppt
- 人教版高一政治必修一课件:第一单元 3.2 树立正确的消费观 (共26张PPT).ppt
文档评论(0)