資源簡介
計算機圖形學及其實踐教程代碼,內容完整,與書籍配套使用
代碼片段和文件信息
#include?“stdafx.h“??//標準庫
#include???//glut庫
#include???//數學庫
void?Display(void);??//繪制函數
void?Reshape(int?w?int?h);?//窗口改變
void?mytime(int?value);?//時間函數
void?myinit(void);?//初始化函數
void?sun();??//太陽
void?earth();?//地球
void?moon();??//月球
void?selectFont(int?size?int?charset?const?char*?face);?//選擇字體
void?drawCNString(const?char*?str);?//生成中文字體函數
float?rs=50?re=30?rm=10;??//太陽、地球和月球半徑
float?xs=0ys=0xe=150ye=0xm=200ym=0;?//太陽、地球和月球
float?asaeamaesameams;??//太陽、地球、月球自轉、地球繞太陽公轉旋轉角度
int?APIENTRY?_tWinMain(HINSTANCE?hInstance
???HINSTANCE?hPrevInstance
???LPTSTR????lpCmdLine
???int???????nCmdShow)
{
UNREFERENCED_PARAMETER(hPrevInstance);
UNREFERENCED_PARAMETER(lpCmdLine);
char?*argv[]?=?{“hello?“?“?“};
int?argc?=?2;?//?must/should?match?the?number?of?strings?in?argv
glutInit(&argc?argv);??//初始化GLUT庫;
glutInitWindowSize(700700);??//設置顯示窗口大小
glutInitDisplayMode(GLUT_DOUBLE?|?GLUT_RGB);??//設置顯示模式;(注意雙緩沖)
glutCreateWindow(“A?Rotating?Sun?System“);?//?創建顯示窗口
glutDisplayFunc(Display);??//注冊顯示回調函數
glutReshapeFunc(Reshape);??//注冊窗口改變回調函數
myinit();??//初始化設置
glutTimerFunc(200?mytime?10);
glutMainLoop();??//進入事件處理循環
return?0;
}
void?myinit()
{
glPointSize(16);??//點大小
glLineWidth(10);??//線寬
/*反走樣代碼*/
glBlendFunc(GL_SRC_ALPHA?GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
glEnable(GL_POINT_SMOOTH);
glHint(GL_POINT_SMOOTH_HINT?GL_NICEST);
glEnable(GL_LINE_SMOOTH);
glHint(GL_LINE_SMOOTH_HINT?GL_NICEST);
glEnable(GL_POLYGON_SMOOTH);
glHint(GL_POLYGON_SMOOTH_HINT?GL_NICEST);
}
void?Display(void)
{
glClear(GL_COLOR_BUFFER_BIT);??//清屏,默認為黑背景色
glMatrixMode(GL_MODELVIEW);?//設置矩陣模式為模型變換模式,表示在世界坐標系下
glLoadIdentity();???//將當前矩陣設置為單位矩陣
???
sun();?//繪制太陽
earth();?//繪制地球
moon();??//繪制月球
glutSwapBuffers();???//雙緩沖的刷新模式;
}
void?sun()
{
??glPushMatrix();?
???/*?繞太陽中心點(坐標原點)自轉*/
????glRotatef(as001);?
?/*繪制太陽球*/
glColor3f(100);
glutWireSphere(rs4040);??//半徑為re的球,球心在原點
/*在太陽圓弧上畫點*/
glColor3f(110);
glBegin(GL_POINTS);
??????glVertex2f(xs+rsys);
glEnd();
?/*在繪制部分調用字體函數,寫中文字*/
selectFont(24?GB2312_CHARSET?“楷體_GB2312“);??//設置字體楷體24號字
glRasterPos2f(xsys);??//定位首字位置
drawCNString(“太陽“);??//寫字“太陽”
??glPopMatrix();
}
void?earth()
{
????glPushMatrix();
/*繞太陽中心點(坐標原點)公轉*/
glRotatef(aes001);??
/*繞地球中心點自轉*/
glTranslatef(xeye0);
glRotatef(ae001);
glTranslatef(-xe-ye0);
??glPushMatrix();
/*繪制地球*/
glPushMatrix();
glColor3f(001);
glTranslatef(xeye0);
glutWireSphere(re4040);??//半徑為re的球,球心在原點
glPopMatrix();
????
/*在地球圓弧上畫點*/
glColor3f(110);
glBegin(GL_POINTS);
glVertex2f(xe+reye);
glEnd();
/*在繪制部分調用字體函數,寫中文字*/
selectFont(24?GB2312_CHARSET?“楷體_GB2312“);??//設置字體楷體24號字
glRasterPos2f(xeye);??//定位首字位置
drawCNString(“地球“);??//寫字“地球”
??glPopMatrix();
??glPopMatrix();
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????6344??2012-11-18?15:48??代碼\lab10_2DSunSystem.cpp
?????文件???????3119??2012-11-18?17:20??代碼\lab10_3DRobot.cpp
?????文件???????6137??2016-04-30?11:28??代碼\lab12_light_materail.cpp
?????文件???????5827??2009-12-09?14:07??代碼\lab13_GLTools.h
?????文件??????11421??2016-04-30?11:31??代碼\lab13_shadow.cpp
?????文件??????12081??2016-04-30?11:30??代碼\lab13_transparency.cpp
?????文件????2164413??2011-12-23?09:17??代碼\lab14_3D_Model\3D_Model\1.mp3
?????文件??????13778??2015-05-27?11:02??代碼\lab14_3D_Model\3D_Model\3ds.cpp
?????文件???????4781??2015-05-27?11:03??代碼\lab14_3D_Model\3D_Model\3ds.h
?????文件???????3184??2012-12-14?10:46??代碼\lab14_3D_Model\3D_Model\3D_Model.cpp
?????文件?????178176??2011-12-23?09:19??代碼\lab14_3D_Model\3D_Model\3D_Model.exe
?????文件?????????39??2011-12-23?09:10??代碼\lab14_3D_Model\3D_Model\3D_Model.h
?????文件??????23558??2003-07-23?17:52??代碼\lab14_3D_Model\3D_Model\3D_Model.ico
?????文件???????3457??2011-12-23?09:10??代碼\lab14_3D_Model\3D_Model\3D_Model.rc
?????文件???????5012??2011-12-23?09:19??代碼\lab14_3D_Model\3D_Model\3D_Model.vcproj
?????文件???????1409??2012-12-17?13:00??代碼\lab14_3D_Model\3D_Model\3D_Model.vcproj.JESSIE.huang?jing.user
?????文件???????1411??2011-12-23?11:36??代碼\lab14_3D_Model\3D_Model\3D_Model.vcproj.teacher.Administrator.user
?????文件???????6140??2015-05-27?10:57??代碼\lab14_3D_Model\3D_Model\3D_Model.vcxproj
?????文件???????2087??2015-05-27?10:57??代碼\lab14_3D_Model\3D_Model\3D_Model.vcxproj.filters
?????文件????????143??2015-05-27?10:57??代碼\lab14_3D_Model\3D_Model\3D_Model.vcxproj.user
?????文件??????47387??2006-06-02?21:53??代碼\lab14_3D_Model\3D_Model\chanche.3DS
?????文件?????262944??2015-05-27?11:03??代碼\lab14_3D_Model\3D_Model\Debug\3ds.obj
?????文件???????1450??2015-05-27?11:02??代碼\lab14_3D_Model\3D_Model\Debug\3D_Model.Build.CppClean.log
?????文件????????406??2015-05-27?11:03??代碼\lab14_3D_Model\3D_Model\Debug\3D_Model.exe.em
?????文件????????472??2015-05-27?11:03??代碼\lab14_3D_Model\3D_Model\Debug\3D_Model.exe.em
?????文件????????381??2015-05-27?11:03??代碼\lab14_3D_Model\3D_Model\Debug\3D_Model.exe.intermediate.manifest
?????文件?????????88??2015-05-27?11:03??代碼\lab14_3D_Model\3D_Model\Debug\3D_Model.lastbuildstate
?????文件???????5703??2015-05-27?11:03??代碼\lab14_3D_Model\3D_Model\Debug\3D_Model.log
?????文件??????35497??2015-05-27?11:03??代碼\lab14_3D_Model\3D_Model\Debug\3D_Model.obj
?????文件????4390912??2015-05-27?11:02??代碼\lab14_3D_Model\3D_Model\Debug\3D_Model.pch
............此處省略205個文件信息
評論
共有 條評論