資源簡(jiǎn)介
根據(jù)OpenGL提供的直線,多邊形繪制算法(橡皮筋效果),實(shí)現(xiàn)基于鼠標(biāo)交互的卡通人物設(shè)計(jì)與繪制。使用顏色填充與反走樣技術(shù)對(duì)卡通人物外貌以及衣著進(jìn)行繪制。實(shí)現(xiàn)對(duì)卡通人物輪廓的交互控制,點(diǎn)擊鼠標(biāo)左鍵可以對(duì)人物五官位置進(jìn)行拖拽移動(dòng)調(diào)整。按“↑”按鍵能夠?qū)崿F(xiàn)卡通人物繞坐標(biāo)原點(diǎn)(或指定點(diǎn))進(jìn)行旋轉(zhuǎn)。
代碼片段和文件信息
#include?“stdafx.h“
#include???
#include???
#include???
#include???
//#include???
#include????
#include???
#include?
using?namespace?std;
#define?Glass???1??
#define?EyeL?????3??
#define?EyeR????4??
#define?Mouth????5??
#define?Cap1?????6??
#define?Cap2???7??
#define?Clothes1?8??
#define?Clothes2?9??
#define?PI?3.1416??
#define?MAX_CHAR?128????
static?int?EYEL_COLOR?=?0;
static?int?EYER_COLOR?=?0;
static?int?MOUTH_COLOR?=?0;
static?int?CAP1_COLOR?=?7;
static?int?CAP2_COLOR?=?6;
static?int?CLOTHES1_COLOR?=?3;
static?int?CLOTHES2_COLOR?=?4;
GLuint?texture[4];
GLuint?base;
BOOL?GLASS_STATE;
BOOL?EYEL_STATE;
BOOL?EYER_STATE;
BOOL?MOUTH_STATE;
BOOL?CAP1_STATE;
BOOL?CAP2_STATE;
BOOL?CLOTHES1_STATE;
BOOL?CLOTHES2_STATE;
GLuint?GlassCor[2]?=?{?00?};
GLuint?StoneCor[2]?=?{?2010?};
GLuint?EyeLCor[2]?=?{?-1148?};
GLuint?EyeRCor[2]?=?{?1148?};
GLuint?MouthCor[2]?=?{?025?};
GLuint?Cap1Cor[2]?=?{?059?};
GLuint?Cap2Cor[2]?=?{?10072?};
GLuint?Clothes1Cor[2]?=?{?0-9?};
GLuint?Clothes2Cor[2]?=?{?100-60?};
int?Wide?=?800;
int?High?=?600;
const?int?N?=?50;
int?select_part?=?0;
static?GLfloat?theta?=?0;
static?GLfloat?scal?=?1;
static?GLfloat?colors[8][3]?=?{
{?0.0?0.0?0.0?}{?1.0?0.0?0.0?}{?0.0?1.0?0.0?}{?0.50.50.75?}
{?0.0?1.0?1.0?}{?1.0?0.0?1.0?}{?1.0?1.0?0.0?}{?1.0?1.0?1.0?}?};
void?paintframe();
void?DrawSphereTexture(int?x?int?y)
{
glEnable(GL_BLEND);?????????????//啟用混合功能,將圖形顏色同周圍顏色相混合????
glBlendFunc(GL_SRC_ALPHA?GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_POINT_SMOOTH);???????//點(diǎn)抗鋸齒????
glEnable(GL_LINE_SMOOTH);????????//線抗鋸齒????
glEnable(GL_POLYGON_SMOOTH);?????//多邊形抗鋸齒?
glEnable(GL_POLYGON_SMOOTH_HINT);
//畫頭部??
glLoadIdentity();
glRotatef(theta?0.0?0.0?1.0);
glScaled(scal?scal?1);
glColor3f(0.5?0.5f?1.0f);
glColor3f(0.5f?0.5f?1.0f);
glBegin(GL_POLYGON);
glVertex2f(-25?59);
glVertex2f(25?59);
glVertex2f(25?25);
glVertex2f(-25?25);
glEnd();
//?畫脖子
glLoadIdentity();
glRotatef(theta?0.0?0.0?1.0);
glScaled(scal?scal?1);
glColor3f(1.0?0.8?0.0);
glBegin(GL_POLYGON);
glVertex2f(-17?25);
glVertex2f(17?25);
glVertex2f(17?21);
glVertex2f(-17?21);
glEnd();
//畫身體
glLoadIdentity();
glRotatef(theta?0.0?0.0?1.0);
glScaled(scal?scal?1);
glColor3f(0.5f?0.5f?1.0f);
glBegin(GL_POLYGON);
glVertex2f(-33?21);
glVertex2f(33?21);
glVertex2f(33?-39);
glVertex2f(-33?-39);
glEnd();
//畫左手臂??
glLoadIdentity();
glRotatef(theta?0.0?0.0?1.0);
glScaled(scal?scal?1);
glColor3f(1.0f?0.8f?1.0f);
glBegin(GL_POLYGON);
glVertex2f(-33?21);
glVertex2f(-52?-4);
glVertex2f(-42?-4);
glVertex2f(-33?8);
glEnd();
glColor3f(1.0f?0.8f?1.0f);
glBegin(GL_POLYGON);
glVertex2f(-51?-4);
glVertex2f(-51?-29);
glVertex2f(-43?-29);
glVertex2f(-43
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-04-19?10:34??exper1\
?????目錄???????????0??2017-03-24?18:45??exper1\.vs\
?????目錄???????????0??2017-03-24?18:45??exper1\.vs\exper1\
?????目錄???????????0??2017-03-24?18:45??exper1\.vs\exper1\v14\
?????文件???????31744??2017-04-19?10:34??exper1\.vs\exper1\v14\.suo
?????目錄???????????0??2017-04-08?14:07??exper1\Debug\
?????文件???????74240??2017-04-08?14:07??exper1\Debug\exper1.exe
?????文件??????405040??2017-04-08?14:07??exper1\Debug\exper1.ilk
?????文件?????1216512??2017-04-08?14:07??exper1\Debug\exper1.pdb
?????目錄???????????0??2017-04-19?10:33??exper1\exper1\
?????文件????????1300??2017-03-24?18:45??exper1\exper1.sln
?????文件????30081024??2017-04-19?10:34??exper1\exper1.VC.db
?????目錄???????????0??2017-04-08?14:07??exper1\exper1\Debug\
?????文件?????????534??2017-04-08?14:07??exper1\exper1\Debug\exper1.log
?????文件??????104451??2017-04-08?14:07??exper1\exper1\Debug\exper1.obj
?????文件?????3407872??2017-03-24?18:47??exper1\exper1\Debug\exper1.pch
?????目錄???????????0??2017-04-08?14:07??exper1\exper1\Debug\exper1.tlog\
?????文件????????1666??2017-04-08?14:07??exper1\exper1\Debug\exper1.tlog\CL.command.1.tlog
?????文件???????24918??2017-04-08?14:07??exper1\exper1\Debug\exper1.tlog\CL.read.1.tlog
?????文件????????1540??2017-04-08?14:07??exper1\exper1\Debug\exper1.tlog\CL.write.1.tlog
?????文件?????????228??2017-04-08?14:07??exper1\exper1\Debug\exper1.tlog\exper1.lastbuildstate
?????文件????????1558??2017-04-08?14:07??exper1\exper1\Debug\exper1.tlog\li
?????文件????????4342??2017-04-08?14:07??exper1\exper1\Debug\exper1.tlog\li
?????文件?????????830??2017-04-08?14:07??exper1\exper1\Debug\exper1.tlog\li
?????文件???????12234??2017-03-24?18:47??exper1\exper1\Debug\stdafx.obj
?????文件??????576512??2017-04-08?14:07??exper1\exper1\Debug\vc140.idb
?????文件??????241664??2017-04-08?14:07??exper1\exper1\Debug\vc140.pdb
?????文件???????24159??2017-04-19?10:33??exper1\exper1\exper1.cpp
?????文件????????8034??2017-03-24?18:45??exper1\exper1\exper1.vcxproj
?????文件????????1313??2017-03-24?18:45??exper1\exper1\exper1.vcxproj.filters
?????文件????????1503??2017-03-24?18:45??exper1\exper1\ReadMe.txt
............此處省略7個(gè)文件信息
- 上一篇:moodle教學(xué)教材
- 下一篇:cdll反編譯工具包.rar
評(píng)論
共有 條評(píng)論