当前位置: 首页 > wzjs >正文

建设公司的网站首页威海市住房和城乡建设局官方网站

建设公司的网站首页,威海市住房和城乡建设局官方网站,无锡新区网站建设,三水网站开发参照本文档可以完成环境搭建和测试,如果想要快速完成环境的搭建可以获取本人的工程,包括所用到的工具链和测试工程源码获取(非免费介意务下载):链接: https://pan.baidu.com/s/1H2ejbT7kLM9ore5MqyomgA 提取码: 8s1b …

参照本文档可以完成环境搭建和测试,如果想要快速完成环境的搭建可以获取本人的工程,包括所用到的工具链和测试工程源码获取(非免费介意务下载):链接: https://pan.baidu.com/s/1H2ejbT7kLM9ore5MqyomgA 提取码: 8s1b 

1、环境搭建

1)安装glew

https://sourceforge.net/projects/glew/

直接下载,当前使用的版本是glew-2.2.0-win32.zip

放到指定的路径并解压

如下所示:

2)安装glfw

Download | GLFW

直接下载,当前使用的版本是glfw-3.4.bin.WIN64.zip

放到指定的路径并解压

如下所示:

3)安装freeglut

https://www.transmissionzero.co.uk/software/freeglut-devel/

直接下载,当前使用的版本是glfw-3.4.bin.WIN64.zip

放到指定的路径并解压

如下所示:

2、配置MFC工程和测试

配置如下所示

设置包含目录

E:\opengl\glfw-3.4.bin.WIN64\includeE:\opengl\glew-2.2.0\includeE:\opengl\freeglut\include

设置库目录

E:\opengl\glfw-3.4.bin.WIN64\lib-vc2022E:\opengl\glew-2.2.0\lib\Release\x64E:\opengl\freeglut\lib\x64
 
 

连接器设置

freeglut.lib
glew32.lib
glew32s.lib
glfw3.lib
glfw3_mt.lib
glfw3dll.lib

3、测试界面

4、运行效果

1、正方形测试

部分源码

	int argc = 1; // 至少需要一个参数(程序名)  char* argv[1] = { "program" }; // 模拟程序名  glutInit(&argc, argv);glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);glutInitWindowPosition(100, 100);glutInitWindowSize(400, 400);glutCreateWindow("第一个OpenGL程序");glutDisplayFunc(&myDisplay);glutMainLoop();

2、立方体测试

部分源码

// 绘制立方体  
void displayMe() {glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除颜色和深度缓冲区  glLoadIdentity(); // 重置模型视图矩阵  // 设置观察位置  gluLookAt(0.0, 0.0, 5.0,  // 摄像机位置  0.0, 0.0, 0.0,  // 观察目标  0.0, 1.0, 0.0); // 上方向  // 旋转立方体  glRotatef(angle, 1.0f, 1.0f, 0.0f); // 绕 (1, 1, 0) 轴旋转  // 绘制立方体  glBegin(GL_QUADS);// 前面  glColor3f(1.0f, 0.0f, 0.0f); // 红色  glVertex3f(-1.0f, -1.0f, 1.0f);glVertex3f(1.0f, -1.0f, 1.0f);glVertex3f(1.0f, 1.0f, 1.0f);glVertex3f(-1.0f, 1.0f, 1.0f);// 后面  glColor3f(0.0f, 1.0f, 0.0f); // 绿色  glVertex3f(-1.0f, -1.0f, -1.0f);glVertex3f(-1.0f, 1.0f, -1.0f);glVertex3f(1.0f, 1.0f, -1.0f);glVertex3f(1.0f, -1.0f, -1.0f);// 左面  glColor3f(0.0f, 0.0f, 1.0f); // 蓝色  glVertex3f(-1.0f, -1.0f, -1.0f);glVertex3f(-1.0f, -1.0f, 1.0f);glVertex3f(-1.0f, 1.0f, 1.0f);glVertex3f(-1.0f, 1.0f, -1.0f);// 右面  glColor3f(1.0f, 1.0f, 0.0f); // 黄色  glVertex3f(1.0f, -1.0f, -1.0f);glVertex3f(1.0f, 1.0f, -1.0f);glVertex3f(1.0f, 1.0f, 1.0f);glVertex3f(1.0f, -1.0f, 1.0f);// 顶面  glColor3f(0.0f, 1.0f, 1.0f); // 青色  glVertex3f(-1.0f, 1.0f, -1.0f);glVertex3f(-1.0f, 1.0f, 1.0f);glVertex3f(1.0f, 1.0f, 1.0f);glVertex3f(1.0f, 1.0f, -1.0f);// 底面  glColor3f(1.0f, 0.0f, 1.0f); // 紫色  glVertex3f(-1.0f, -1.0f, -1.0f);glVertex3f(1.0f, -1.0f, -1.0f);glVertex3f(1.0f, -1.0f, 1.0f);glVertex3f(-1.0f, -1.0f, 1.0f);glEnd();glutSwapBuffers(); // 交换前后缓冲区  
}void CjsAVMopenglDlg::OnBnClickedButton1()
{TODO: 在此添加控件通知处理程序代码int argc_fake = 1;char* argv_fake[1] = { "program" };glutInit(&argc_fake, argv_fake);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);glutInitWindowSize(500, 500);glutCreateWindow("3D Cube");glEnable(GL_DEPTH_TEST); // 启用深度测试  glutDisplayFunc(displayMe);glutReshapeFunc(reshapeMe);// 使用定时器控制旋转速度  glutTimerFunc(16, updateRotation, 0); // 每 16 毫秒调用一次 updateRotation  glutMainLoop();
}

3、球体测试(带贴图)

部分源码

// 绘制函数  
void display() {// 清除颜色和深度缓冲  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glLoadIdentity();// 设置观察点  gluLookAt(0.0, 0.0, 5.0,  // 相机位置  0.0, 0.0, 0.0,  // 观察点  0.0, 1.0, 0.0); // 上方向  // 旋转地球  glRotatef(angle, 0.0f, 1.0f, 0.0f);// 启用纹理  glEnable(GL_TEXTURE_2D);glBindTexture(GL_TEXTURE_2D, texture);// 创建球体  GLUquadric* sphere = gluNewQuadric();gluQuadricTexture(sphere, GL_TRUE);gluQuadricNormals(sphere, GLU_SMOOTH);gluSphere(sphere, 1.8, 50, 50);  // 半径1.0,50x50分段  gluDeleteQuadric(sphere);// 禁用纹理  glDisable(GL_TEXTURE_2D);// 交换缓冲区  glutSwapBuffers();
}
//MFC对话框按钮点击事件  
void CjsAVMopenglDlg::OnBnClickedButton3()
{// 初始化GLUT  int argc = 1;char* argv[1] = { (char*)"Something" };glutInit(&argc, argv);// 设置显示模式  glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);// 设置窗口大小和位置  glutInitWindowSize(800, 800);glutInitWindowPosition(100, 100);// 创建窗口  glutCreateWindow("Earth Rotation");// 初始化OpenGL  init();// 加载纹理  loadTexture();// 设置回调函数  glutDisplayFunc(display);glutReshapeFunc(reshape);glutTimerFunc(0, update, 0);// 进入主循环  glutMainLoop();
}

4、碗型测试


// 窗口大小变化回调函数  
void reshape_wan(int width, int height) {glViewport(0, 0, width, height);glMatrixMode(GL_PROJECTION);glLoadIdentity();gluPerspective(45.0f, (float)width / height, 0.1f, 100.0f);glMatrixMode(GL_MODELVIEW);
}// 键盘回调函数  
void keyboard(unsigned char key, int x, int y) {switch (key) {case '1':   // 碗型视图  viewMode = 0;break;case '2':   // 俯视图  viewMode = 1;break;case '3':   // 分屏视图  viewMode = 2;break;case '+':   // 放大  case '=':zoom += 1.0f;break;case '-':   // 缩小  case '_':zoom -= 1.0f;break;case 27:    // ESC键,退出程序  // 释放纹理内存  for (int i = 0; i < 5; i++) {delete[] textureData[i];}exit(0);break;}glutPostRedisplay();
}// 方向键回调函数  
void specialKeys(int key, int x, int y) {switch (key) {case GLUT_KEY_UP:rotX += 5.0f;break;case GLUT_KEY_DOWN:rotX -= 5.0f;break;case GLUT_KEY_LEFT:rotY -= 5.0f;break;case GLUT_KEY_RIGHT:rotY += 5.0f;break;}glutPostRedisplay();
}// 鼠标处理  
int mouseX = 0, mouseY = 0;
bool mouseLeftDown = false;
bool mouseRightDown = false;void mouse(int button, int state, int x, int y) {mouseX = x;mouseY = y;if (button == GLUT_LEFT_BUTTON) {if (state == GLUT_DOWN)mouseLeftDown = true;elsemouseLeftDown = false;}else if (button == GLUT_RIGHT_BUTTON) {if (state == GLUT_DOWN)mouseRightDown = true;elsemouseRightDown = false;}
}void mouseMotion(int x, int y) {if (mouseLeftDown) {rotY += (x - mouseX);rotX += (y - mouseY);mouseX = x;mouseY = y;}if (mouseRightDown) {zoom += (y - mouseY) * 0.1f;mouseY = y;}glutPostRedisplay();
}// MFC按钮事件处理  
void CjsAVMopenglDlg::OnBnClickedButton4()
{// TODO: 在此添加控件通知处理程序代码  int argc = 1;char* argv[1] = { (char*)"Something" };glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);glutInitWindowSize(1000, 600);glutCreateWindow("OpenGL AVM 碗型投影全景系统");init_wan();glutDisplayFunc(display_wan);glutReshapeFunc(reshape_wan);glutKeyboardFunc(keyboard);glutSpecialFunc(specialKeys);glutMouseFunc(mouse);glutMotionFunc(mouseMotion);glutMainLoop();
}

动态视频测试

基于opengl实现球面贴图旋转


文章转载自:

http://qMaG3DhF.tmxtr.cn
http://mm5M7dlH.tmxtr.cn
http://mgOffdeX.tmxtr.cn
http://Son4yB0M.tmxtr.cn
http://7f72SKeI.tmxtr.cn
http://zA2FtJil.tmxtr.cn
http://ie4dmCSH.tmxtr.cn
http://JeSaePay.tmxtr.cn
http://lxgUyq4w.tmxtr.cn
http://oCC9DfgT.tmxtr.cn
http://09pYOCEd.tmxtr.cn
http://7QmMPptG.tmxtr.cn
http://1EYXlAql.tmxtr.cn
http://p0RjZqmK.tmxtr.cn
http://kB2OwCE6.tmxtr.cn
http://NWCTWWRL.tmxtr.cn
http://Pe6v3vHm.tmxtr.cn
http://PlxbTAiO.tmxtr.cn
http://MlbwQilb.tmxtr.cn
http://TEwS1XSP.tmxtr.cn
http://SEL0eIxr.tmxtr.cn
http://7QO0OuDz.tmxtr.cn
http://sxsSr2BL.tmxtr.cn
http://0KPrU0fi.tmxtr.cn
http://2gLpyjJE.tmxtr.cn
http://ZcrWJvV1.tmxtr.cn
http://5rnoMGkR.tmxtr.cn
http://sl3zhxbG.tmxtr.cn
http://IhNu49sS.tmxtr.cn
http://DwmuyFeI.tmxtr.cn
http://www.dtcms.com/wzjs/737020.html

相关文章:

  • 东莞网站推广怎么样做网站空间不给账号密码
  • 烟台网站建设电话上海做网站的公司哪家好
  • 微信公众号网站建设网站备案 工信部
  • 佛山网站优化软件网站建设的商品编码
  • 黄岛网站建设哪家专业湖南省建设工程招标网
  • 中国建设银行洛阳分行网站网站建设捌金手指花总四
  • 淄博住房和城乡建设厅网站聊城市东昌府区建设路小学网站
  • 虚拟主机 网站镜像设计模板网站都有哪些
  • 教育类门户网站前端后端分别是什么意思
  • 淘宝优惠劵做网站模版seo搜索排名优化方法
  • WordPress手机不显示长沙网站推广和优化
  • 宝安印刷网站建设青海建设工程信息网站
  • 网站源码上传到哪个文件夹国外网站推广平台有哪些公司
  • 重庆美邦 网站建设怎样先做网站后买域名
  • 网站建设的开发的主要方法杭州公司注册代理中介
  • 怎样用源代码做网站网站开发中遇到的技术问题
  • flash个人网站模板网站开发一般要哪些开发工具
  • 空港经济区内的建设工程网站腾讯云wordpress博客
  • 领导不愿意做招聘网站怎么办建设部考试中心网站
  • 网站审核照片幕布品牌网站建设 蝌蚪小7
  • 百度权重查询网站iis编辑网站绑定
  • 建设银行网站修改密码Wordpress付费主题排名
  • 网站挂百度推广绍兴seo公司
  • 国外网站网站视频互动网站建设
  • 桂林网站建设制作宣传片视频
  • 建筑公司网站源码 php微商城新零售app
  • html5公司网站欣赏常用网站建设软件有哪些
  • 免费做试卷的网站长春建站费用
  • 在印度做视频网站视网站亏损了为什么还做
  • 网站管理人员队伍建设有待加强新乡商城网站建设