資源簡(jiǎn)介
計(jì)算機(jī)圖形學(xué)及其實(shí)踐教程代碼,內(nèi)容完整,與書籍配套使用
代碼片段和文件信息
#include?“stdafx.h“??//標(biāo)準(zhǔn)庫
#include???//glut庫
#include???//數(shù)學(xué)庫
void?Display(void);??//繪制函數(shù)
void?Reshape(int?w?int?h);?//窗口改變
void?mytime(int?value);?//時(shí)間函數(shù)
void?myinit(void);?//初始化函數(shù)
void?sun();??//太陽
void?earth();?//地球
void?moon();??//月球
void?selectFont(int?size?int?charset?const?char*?face);?//選擇字體
void?drawCNString(const?char*?str);?//生成中文字體函數(shù)
float?rs=50?re=30?rm=10;??//太陽、地球和月球半徑
float?xs=0ys=0xe=150ye=0xm=200ym=0;?//太陽、地球和月球
float?asaeamaesameams;??//太陽、地球、月球自轉(zhuǎn)、地球繞太陽公轉(zhuǎn)旋轉(zhuǎn)角度
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);??//設(shè)置顯示窗口大小
glutInitDisplayMode(GLUT_DOUBLE?|?GLUT_RGB);??//設(shè)置顯示模式;(注意雙緩沖)
glutCreateWindow(“A?Rotating?Sun?System“);?//?創(chuàng)建顯示窗口
glutDisplayFunc(Display);??//注冊(cè)顯示回調(diào)函數(shù)
glutReshapeFunc(Reshape);??//注冊(cè)窗口改變回調(diào)函數(shù)
myinit();??//初始化設(shè)置
glutTimerFunc(200?mytime?10);
glutMainLoop();??//進(jìn)入事件處理循環(huán)
return?0;
}
void?myinit()
{
glPointSize(16);??//點(diǎn)大小
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);??//清屏,默認(rèn)為黑背景色
glMatrixMode(GL_MODELVIEW);?//設(shè)置矩陣模式為模型變換模式,表示在世界坐標(biāo)系下
glLoadIdentity();???//將當(dāng)前矩陣設(shè)置為單位矩陣
???
sun();?//繪制太陽
earth();?//繪制地球
moon();??//繪制月球
glutSwapBuffers();???//雙緩沖的刷新模式;
}
void?sun()
{
??glPushMatrix();?
???/*?繞太陽中心點(diǎn)(坐標(biāo)原點(diǎn))自轉(zhuǎn)*/
????glRotatef(as001);?
?/*繪制太陽球*/
glColor3f(100);
glutWireSphere(rs4040);??//半徑為re的球,球心在原點(diǎn)
/*在太陽圓弧上畫點(diǎn)*/
glColor3f(110);
glBegin(GL_POINTS);
??????glVertex2f(xs+rsys);
glEnd();
?/*在繪制部分調(diào)用字體函數(shù),寫中文字*/
selectFont(24?GB2312_CHARSET?“楷體_GB2312“);??//設(shè)置字體楷體24號(hào)字
glRasterPos2f(xsys);??//定位首字位置
drawCNString(“太陽“);??//寫字“太陽”
??glPopMatrix();
}
void?earth()
{
????glPushMatrix();
/*繞太陽中心點(diǎn)(坐標(biāo)原點(diǎn))公轉(zhuǎn)*/
glRotatef(aes001);??
/*繞地球中心點(diǎn)自轉(zhuǎn)*/
glTranslatef(xeye0);
glRotatef(ae001);
glTranslatef(-xe-ye0);
??glPushMatrix();
/*繪制地球*/
glPushMatrix();
glColor3f(001);
glTranslatef(xeye0);
glutWireSphere(re4040);??//半徑為re的球,球心在原點(diǎn)
glPopMatrix();
????
/*在地球圓弧上畫點(diǎn)*/
glColor3f(110);
glBegin(GL_POINTS);
glVertex2f(xe+reye);
glEnd();
/*在繪制部分調(diào)用字體函數(shù),寫中文字*/
selectFont(24?GB2312_CHARSET?“楷體_GB2312“);??//設(shè)置字體楷體24號(hào)字
glRasterPos2f(xeye);??//定位首字位置
drawCNString(“地球“);??//寫字“地球”
??glPopMatrix();
??glPopMatrix();
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????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個(gè)文件信息
評(píng)論
共有 條評(píng)論