91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 7.46MB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2023-10-12
  • 語言: 其他
  • 標(biāo)簽:

資源簡介

計(jì)算機(jī)圖形學(xué)(第三版)三維空間的幾何變換代碼:代碼運(yùn)行軟件版本(Visual Studio 2015)【軟件安裝教程百度“VS2015安裝+OpenGL環(huán)境配置及測試”】 參考書本代碼227~229頁代碼,稍作修改,實(shí)現(xiàn)三維圖形平移,旋轉(zhuǎn),縮放等幾何變換。

資源截圖

代碼片段和文件信息

#include?“Dependencies\glew\glew.h“
#include?“Dependencies\freeglut\freeglut.h“
#include
#include


GLsizei?winWidth?=?600?winHeight?=?600;

GLfloat?xwcMin?=?0.0?xwcMax?=?225.0;
GLfloat?ywcMin?=?0.0?ywcMax?=?225.0;

class?wcPt3D?{
public:
GLfloat?x?y?z;
};

typedef?GLfloat?Matrix4x4[4][4];

Matrix4x4?matComposition;

const?GLdouble?pi?=?3.14159;


void?init(void)?{
/*設(shè)置窗口顯示顏色*/
glClearColor(0.0?0.0?0.0?0.0);
}

/*創(chuàng)建4X4的單位矩陣*/
void?Matrix4x4SetIndentity(Matrix4x4?matIndent3x3)
{
GLint?row?col;
for?(row?=?0;?row? for?(col?=?0;?col? matIndent3x3[row][col]?=?(row?==?col);
}

/*矩陣m1左乘矩陣m2結(jié)果存儲在m2中*/
void?Matrix4x4PreMultiply(Matrix4x4?m1?Matrix4x4?m2)
{
GLint?row?col;
Matrix4x4?matTemp;

for?(row?=?0;?row? for?(col?=?0;?col? matTemp[row][col]?=?m1[row][0]?*?m2[0][col]?+?m1[row][1]?*?m2[1][col]?+?m1[row][2]?*?m2[2][col]+?m1[row][3]?*?m2[3][col];
for?(row?=?0;?row? for?(col?=?0;?col? m2[row][col]?=?matTemp[row][col];
}

void?translate3D(GLfloat?tx?GLfloat?ty?GLfloat?tz)
{
Matrix4x4?matTrans3D;

/*初始化一個(gè)單位矩陣*/
Matrix4x4SetIndentity(matTrans3D);

matTrans3D[0][2]?=?tx;
matTrans3D[1][2]?=?ty;
matTrans3D[2][3]?=?tz;

/*復(fù)合三維平移*/
Matrix4x4PreMultiply(matTrans3D?matComposition);
}

void?rotate3D(wcPt3D?p1?wcPt3D?p2GLfloat?radianAngle)
{
Matrix4x4?matQuatRot;

GLfloat?axisVectLength?=?sqrt((p2.x?-?p1.x)*(p2.x?-?p1.x)?+?(p2.y?-?p1.y)*(p2.y?-?p1.y)?+?(p2.z?-?p1.z)*(p2.z?-?p1.z));

GLfloat?cosA?=?cosf(radianAngle);
GLfloat?oneC?=?1?-?cosA;
GLfloat?sinA?=?sinf(radianAngle);
GLfloat?ux?=?(p2.x?-?p1.x)?/?axisVectLength;
GLfloat?uy?=?(p2.y?-?p1.y)?/?axisVectLength;
GLfloat?uz?=?(p2.z?-?p1.z)?/?axisVectLength;

//p1點(diǎn)平移至原點(diǎn)
translate3D(-p1.x?-p1.y?-p1.z);

/*初始化一個(gè)單位矩陣*/
Matrix4x4SetIndentity(matQuatRot);
matQuatRot[0][0]?=?ux*ux*oneC?+?cosA;
matQuatRot[0][1]?=?ux*uy*oneC?-?uz*sinA;
matQuatRot[0][2]?=?ux*uz*oneC?+?uy*sinA;
matQuatRot[1][0]?=?uy*ux*oneC?+?uz*sinA;
matQuatRot[1][1]?=?uy*uy*oneC?+?cosA;
matQuatRot[1][2]?=?uy*uz*oneC?-?ux*sinA;
matQuatRot[2][0]?=?uz*ux*oneC?-?uy*sinA;
matQuatRot[2][1]?=?uz*uy*oneC?+?ux*sinA;
matQuatRot[2][2]?=?uz*uz*oneC?+?cosA;

/*復(fù)合三維旋轉(zhuǎn)*/
Matrix4x4PreMultiply(matQuatRot?matComposition);

//逆平移
translate3D(p1.x?p1.y?p1.z);
}

void?scale3D(GLfloat?sx?GLfloat?sy?GLfloat?sz?wcPt3D?fixedPt)
{
Matrix4x4?matScale3D;

/*初始化一個(gè)單位矩陣*/
Matrix4x4SetIndentity(matScale3D);
matScale3D[0][0]?=?sx;
matScale3D[0][3]?=?(1?-?sx)*fixedPt.x;
matScale3D[1][1]?=?sy;
matScale3D[1][3]?=?(1?-?sy)*fixedPt.y;
matScale3D[2][2]?=?sz;
matScale3D[2][3]?=?(1?-?sz)*fixedPt.z;

/*復(fù)合二維縮放*/
Matrix4x4PreMultiply(matScale3D?matComposition);
}

/*利用復(fù)合矩陣計(jì)算改變的坐標(biāo)*/
void?transformVerts3D(GLint?nVerts?wcPt3D?*verts)
{
GLint?k;
GLfloat?temp;

for?(k?=?0;?k? {
temp?=?mat

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

????..A..H.?????27648??2016-10-31?20:37??wcPt3D\.vs\wcPt3D\v14\.suo

?????文件??????61440??2016-10-26?22:42??wcPt3D\Debug\wcPt3D.pdb

?????文件?????330752??2016-10-26?22:42??wcPt3D\wcPt3D\Debug\vc140.idb

?????文件??????94208??2016-10-26?22:42??wcPt3D\wcPt3D\Debug\vc140.pdb

?????文件???????3225??2016-10-26?22:42??wcPt3D\wcPt3D\Debug\wcPt3D.log

?????文件??????26785??2016-10-26?22:42??wcPt3D\wcPt3D\Debug\wcPt3D.obj

?????文件????????754??2016-10-26?22:42??wcPt3D\wcPt3D\Debug\wcPt3D.tlog\CL.command.1.tlog

?????文件??????14668??2016-10-26?22:42??wcPt3D\wcPt3D\Debug\wcPt3D.tlog\CL.read.1.tlog

?????文件????????668??2016-10-26?22:42??wcPt3D\wcPt3D\Debug\wcPt3D.tlog\CL.write.1.tlog

?????文件??????????2??2016-10-26?22:42??wcPt3D\wcPt3D\Debug\wcPt3D.tlog\link-cvtres.read.1.tlog

?????文件??????????2??2016-10-26?22:42??wcPt3D\wcPt3D\Debug\wcPt3D.tlog\link-cvtres.write.1.tlog

?????文件??????????2??2016-10-26?22:42??wcPt3D\wcPt3D\Debug\wcPt3D.tlog\link-rc.read.1.tlog

?????文件??????????2??2016-10-26?22:42??wcPt3D\wcPt3D\Debug\wcPt3D.tlog\link-rc.write.1.tlog

?????文件??????????2??2016-10-26?22:42??wcPt3D\wcPt3D\Debug\wcPt3D.tlog\link.command.1.tlog

?????文件??????????2??2016-10-26?22:42??wcPt3D\wcPt3D\Debug\wcPt3D.tlog\link.read.1.tlog

?????文件??????????2??2016-10-26?22:42??wcPt3D\wcPt3D\Debug\wcPt3D.tlog\link.write.1.tlog

?????文件??????????0??2016-10-26?22:42??wcPt3D\wcPt3D\Debug\wcPt3D.tlog\unsuccessfulbuild

?????文件????????226??2016-10-26?22:42??wcPt3D\wcPt3D\Debug\wcPt3D.tlog\wcPt3D.lastbuildstate

?????文件????????703??2015-03-14?15:34??wcPt3D\wcPt3D\Dependencies\freeglut\freeglut.h

?????文件??????36518??2015-03-14?15:24??wcPt3D\wcPt3D\Dependencies\freeglut\freeglut.lib

?????文件??????10682??2015-03-14?15:34??wcPt3D\wcPt3D\Dependencies\freeglut\freeglut_ext.h

?????文件??????27470??2015-07-22?08:45??wcPt3D\wcPt3D\Dependencies\freeglut\freeglut_std.h

?????文件????????660??2015-03-14?15:34??wcPt3D\wcPt3D\Dependencies\freeglut\glut.h

?????文件????1038562??2015-08-10?21:54??wcPt3D\wcPt3D\Dependencies\glew\glew.h

?????文件?????609776??2015-08-10?21:53??wcPt3D\wcPt3D\Dependencies\glew\glew32.lib

?????文件??????74912??2015-08-10?21:54??wcPt3D\wcPt3D\Dependencies\glew\glxew.h

?????文件??????64836??2015-08-10?21:54??wcPt3D\wcPt3D\Dependencies\glew\wglew.h

?????文件???????6686??2016-10-31?20:37??wcPt3D\wcPt3D\wcPt3D.cpp

?????文件???????8045??2016-10-26?22:44??wcPt3D\wcPt3D\wcPt3D.vcxproj

?????文件????????958??2016-10-26?22:42??wcPt3D\wcPt3D\wcPt3D.vcxproj.filters

............此處省略36個(gè)文件信息

評論

共有 條評論

相關(guān)資源