- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北方工业大学计算机图形学实验几何变换分析
北方工业大学
计算机图形学课程实验报告
题 目: 实验二 几何变换 学 院: 专 业: 指导教师: 学生班级: 学生学号: 学生姓名: 教师评定:
学号: 班级: 姓名:
实验报告二 几何变换实验
一.实验目的
1.熟悉OpenGL图形库;
2.掌握几何变换算法。
二.实验环境
1.软件环境:
操作系统:Win7
应用软件:VC6.0,OpenGL
2.硬件环境
CPU:
显卡:
三.用矩阵计算实现二维几何变换
写程序实现基本矩阵运算,同时实现平移、放缩、旋转等几何变换。要求自己设计实例验证平移、放缩、旋转函数,采用键盘交互。已给出二维点坐标结构体、单位矩阵赋值函数。
已给出:二维点坐标结构体
struct Point2D
{
float x, y;
}
已给出:宏定义3×3数组
typedef float Matrix3x3 [3][3];
Matrix3x3 matComposite;
已给出:单位矩阵赋值函数
void matrix3x3SetIdentity(Matrix3x3 matIdent3x3)
{
int row, col;
for(row=0; row3;row++)
{
for(col=0; col3; col++)
{
matIdent3x3[row][col] = (row==col);
}
}
}
要求给出以下函数及实例截图。
1.矩阵左乘运算函数
Void matrix3x3PreMultiply(Matrix3x3 m1, Matrix3x3 m2)
{
int row, col;
Matrix3x3 temp;
for(row=0; row3;row++)
{
for(col=0; col3; col++)
{
temp[row][col] = m1[row][0]*m2[0][col] + m1[row][1]*m2[1][col] + m1[row][2]*m2[2][col];
}
}
for(row=0; row3;row++)
{
for(col=0; col3; col++)
{
m2[row][col]=temp[row][col];
}
}
2.平移函数
void Translate2D (float tx, float ty)
{
Matrix3x3 matTransl;
matrix3x3SetIdentity (matTransl);
matTransl[0][2]=tx;
matTransl[1][2]=ty;
matrix3x3PreMultiply(matTransl,matComposite);
}
3.顶点矩阵左乘合成函数
void TransformVerts2D(int nVerts,Point2D * verts)
{
GLint k;
GLfloat temp1, temp2;
for (k=0;knVerts; k++)
{
temp1=matComposite [0][0]*verts[k].x + matComposite [0][1]*verts[k].y + matComposite [0][2];
temp2=matComposite [1][0]*verts[k].x + matComposite [1][1]*verts[k].y+matComposite [1][2];
verts[k].x=temp1;
verts[k].y=temp2;
}
}
4.绘制三角形函数
void RenderTriangle (Point2D* verts)
{
int k;
glBegin (GL_TRIANGLES);
for (k=0;k3;k++)
{
glVertex2f(verts[k].x,verts[k].y);
}
glEnd();
}
5.旋转函数
void Rotate2D (Point2D fixedPt, float theta)
{
Matrix3x3 matRot;
matrix3x3SetIdentity (matRot);
matRot [0][0]=cos(theta);
matRot [0][1]=-sin (theta);
matRot [0][2]=fixedPt.x*(1-cos (theta))+fixedPt.y*sin(theta);
matRot [1][0]=sin (theta);
matRot [1][1]=cos (theta);
matRot [31][2]=fixedPt.x*(1-cos (th
您可能关注的文档
最近下载
- 电力行业电网运行维护员岗面试真题题库参考答案和答题要点.docx VIP
- 健康照护师复习资料试题附答案(500题).docx
- 2型糖尿病医学演示课件.ppt VIP
- 2024新沪教版英语(五·四学制)七年级上单词表 (英译汉).docx VIP
- (2025年版)基孔肯雅热诊疗方案全文PPT课件.ppt
- 浙江绍兴市12345政务热线招录工作人员6人笔试备考题库带答案详解.docx VIP
- 化学丨河北省石家庄市2024届高三下学期3月联考(一模)化学试卷及答案.pdf VIP
- SHT35212007石油化工仪表工程施工技术规程.pdf VIP
- 心力衰竭课件PPT.pptx VIP
- NFPA 72-2022 国家火灾报警和信号代码(中文翻译版).pdf VIP
文档评论(0)