-
大小: 10.03MB文件類型: .rar金幣: 2下載: 0 次發布日期: 2023-11-06
- 語言: 其他
- 標簽:
資源簡介
圖形學的實驗~鼠標畫線、鍵盤移動、創建顏色選擇菜單三個功能皆實現了。如果項目運行有BUG的話,直接把cpp文件里的代碼復制過去新建個項目就可以了

代碼片段和文件信息
#include?“stdafx.h“
#include????
#include????
#include????
GLfloat?vVertex[]?=?{?100?150?500?450?};
GLsizei?winWidth?=?800?winHeight?=?600;?//?窗口的大小
GLfloat?red?=?0.0?green?=?0.0?blue?=?0.0;?//顏色
GLenum?fillMode?=?GL_SMOOTH;
bool?Line?Circle?Rectanger;
int?xstart?ystart?xend?yend;//鼠標的坐標
float?r;//圓的半徑
int?NUM?=?200;//?定義繪制圓時用的頂點數(用頂點組成的線段逼近圓)(new)
void?fillOption(GLint?s)?{
//glutPostRedisplay();
}
void?colorselection(GLint?selectedOption)
{
switch?(selectedOption)?{
case?1:red?=?true;?green?=?false;?blue?=?false;?break;
case?2:red?=?false;?green?=?true;?blue?=?false;?break;
case?3:red?=?false;?green?=?false;?blue?=?true;?break;
}
}
void?lineSegment(void)
{
glLineWidth(10);
glClear(GL_COLOR_BUFFER_BIT);??//?Clear?display?window.
glColor3f(1.0?0.0?0.0);??????//?Set?line?segment?color?to?green.
glBegin(GL_LINES);
glVertex2i(vVertex[0]?vVertex[1]);???????//?Specify?line-segment?geometry.
glVertex2i(vVertex[2]?vVertex[3]);????????//起點坐標,x橫坐標,y縱坐標
glEnd();
glFlush();?????//?Process?all?OpenGL?routines?as?quickly?as?possible.
}
void?mousemove(int?xmove?int?ymove)
{
if?(red)?{
glColor3f(1.0?0.0?0.0);
}
else?if?(green)
{
glColor3f(0.0?1.0?0.0);
}
else?{
glColor3f(0.0?0.0?1.0);
}
glEnable(GL_COLOR_LOGIC_OP);
glLogicOp(GL_XOR);
glBegin(GL_LINES);
glVertex2i(xstart?ystart);
glVertex2i(xend?yend);
glEnd();
xend?=?xmove;
yend?=?winHeight?-?ymove;
glLineWidth(10);
glBegin(GL_LINES);
glVertex2i(xstart?ystart);
glVertex2i(xend?yend);
glEnd();
glFlush();
}
void?mouseud(int?btn?int?state?int?x?int?y)
{
if?(btn?==?GLUT_LEFT_BUTTON?&&?state?==?GLUT_DOWN)
{
xstart?=?x;
ystart?=?winHeight?-?y;
xend?=?xstart;
yend?=?ystart;
}
else?if?(btn?==?GLUT_LEFT_BUTTON?&&?state?==?GLUT_UP)
{
xend?=?x;
yend?=?winHeight?-?y;
glDisable(GL_COLOR_LOGIC_OP);
if?(red)?{
glColor3f(1.0?0.0?0.0);
}
else?if?(green)
{
glColor3f(0.0?1.0?0.0);
}
else?{
glColor3f(0.0?0.0?1.0);
}
glLineWidth(10);
glBegin(GL_LINES);
glVertex2i(xstart?ystart);
glVertex2i(xend?yend);
glEnd();
glFlush();
}
}
//鍵盤移動
void?SpecialKeys(int?key?int?x?int?y)
{
GLfloat?stepSize?=?10;??//增加的步量??
GLfloat?blockX?=?0;
GLfloat?blockY?=?0;
//上??
if?(key?==?GLUT_KEY_UP)
{
blockY?+=?stepSize;
}
//下??
if?(key?==?GLUT_KEY_DOWN)
{
blockY?-=?stepSize;
}
//左??
if?(key?==?GLUT_KEY_LEFT)
{
blockX?-=?stepSize;
}
//右??
if?(key?==?GLUT_KEY_RIGHT)
{
blockX?+=?stepSize;
}
//改變頂點數據??
vVertex[0]?=?vVertex[0]?+?blockX;
vVertex[1]?=?vVertex[1]?+?blockY;
vVertex[2]?=?vVertex[2]?+?blockX;
vVertex[3]?=?vVertex[3]?+?blockY;
glutPostRedisplay();?//更新窗口內容??
}
void?init(void)
{
glClearColor(1.0?1.0?1.0?1.0);?//設置窗口顏色為白色
glMatrixMode(GL_PROJECTION);???????//?Set?projection?parameters.
gluOrtho2D(0.0
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????69632??2017-04-16?21:42??Experiment3\Debug\Experiment3.exe
?????文件?????957872??2017-04-16?21:42??Experiment3\Debug\Experiment3.ilk
?????文件?????961536??2017-04-16?21:42??Experiment3\Debug\Experiment3.pdb
?????文件?????218624??2017-04-13?18:36??Experiment3\Debug\freeglut.dll
?????文件?????337408??2017-04-13?18:36??Experiment3\Debug\glew32.dll
?????文件?????350720??2017-04-13?18:36??Experiment3\Debug\glewinfo.exe
?????文件??????43520??2017-04-13?18:36??Experiment3\Debug\glfw3.dll
?????文件?????222720??2017-04-13?18:36??Experiment3\Debug\visualinfo.exe
?????文件???????2290??2017-04-16?21:42??Experiment3\Experiment3\Debug\cl.command.1.tlog
?????文件??????21146??2017-04-16?21:42??Experiment3\Experiment3\Debug\CL.read.1.tlog
?????文件???????1338??2017-04-16?21:42??Experiment3\Experiment3\Debug\CL.write.1.tlog
?????文件?????????98??2017-04-16?21:42??Experiment3\Experiment3\Debug\Experiment3.lastbuildstate
?????文件???????2631??2017-04-16?21:42??Experiment3\Experiment3\Debug\Experiment3.log
?????文件?????164769??2017-04-16?21:42??Experiment3\Experiment3\Debug\Experiment3.obj
?????文件????1245184??2017-04-13?18:46??Experiment3\Experiment3\Debug\Experiment3.pch
?????文件??????????2??2017-04-16?21:42??Experiment3\Experiment3\Debug\li
?????文件??????????2??2017-04-16?21:42??Experiment3\Experiment3\Debug\li
?????文件??????????2??2017-04-16?21:42??Experiment3\Experiment3\Debug\li
?????文件??????????2??2017-04-16?21:42??Experiment3\Experiment3\Debug\li
?????文件??????????2??2017-04-16?21:42??Experiment3\Experiment3\Debug\li
?????文件??????????2??2017-04-16?21:42??Experiment3\Experiment3\Debug\li
?????文件??????????2??2017-04-16?21:42??Experiment3\Experiment3\Debug\li
?????文件??????????2??2017-04-16?21:42??Experiment3\Experiment3\Debug\li
?????文件??????????2??2017-04-16?21:42??Experiment3\Experiment3\Debug\li
?????文件??????????2??2017-04-16?21:42??Experiment3\Experiment3\Debug\li
?????文件???????2572??2017-04-16?21:42??Experiment3\Experiment3\Debug\li
?????文件???????4106??2017-04-16?21:42??Experiment3\Experiment3\Debug\li
?????文件????????920??2017-04-16?21:42??Experiment3\Experiment3\Debug\li
?????文件??????11807??2017-04-13?18:46??Experiment3\Experiment3\Debug\stdafx.obj
?????文件?????519168??2017-04-16?21:42??Experiment3\Experiment3\Debug\vc110.idb
............此處省略76個文件信息
- 上一篇:仿京東購物車頁面
- 下一篇:網絡設備visio圖標
評論
共有 條評論