科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件用Visual C++实现OpenGL程序设计

用Visual C++实现OpenGL程序设计

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

开发了一个基于VC++6.0的对话框的OpenGL程序,它包含了所有OPENGL的学习内容。

作者:Tom 来源:vchelp 2007年10月16日

关键字: Visual C++ OpenGL 程序设计

  • 评论
  • 分享微博
  • 分享邮件
开发了一个基于VC++6.0的对话框的OpenGL程序,它包含了所有OPENGL的学习内容,从投影,三维变换,到BERZER,BSPLINE,NURBS和一二维纹理等,非常适合初学者.有问题请发邮件mgamegame@126.com.

  正文

  1、新建一个基于对话框的工程,名字如OpenGLVCd;

  2、将gl.h,glu.h,glut.h, opengl32.lib,glu32.lib,glut32.lib

opengl32.dll,glu32.dll,glut32.dll复制到工程目录下,将gl.h,glu.h,glut.h三个文件加入工程中;

  3、"工程-设置-link",将opengl32.lib,glu32.lib,glut32.lib链接到工程中;

  4、新建一个普通的类如

class COpenGLAdd{......};

  5.在类的OpenGLAdd.h文件头加入#include "gl.h";#include"glu.h"; #include"glut.h";

  6.在OpenGLVCdDlg.h中加上黑体字

#include "OpenGLAdd.h"
class COpenGLAdd;

/////////////////////////////////////////////////////////////////////////////
// COpenGLVCdDlg dialog

class COpenGLVCdDlg : public CDialog
{
// Construction
public:
COpenGLVCdDlg(CWnd* pParent = NULL); // standard constructor
COpenGLAdd* gg;......

  7.在OpenGLVCdDlg.cpp中加上黑体字

BOOL COpenGLVCdDlg::OnInitDialog()
{
 ........
 SetIcon(m_hIcon, FALSE); // Set small icon

 // TODO: Add extra initialization here
 gg=new COpenGLAdd;//////////
 gg->initial(this);//////////

 return TRUE; // return TRUE unless you set the focus to a control
}

void COpenGLVCdDlg::OnPaint()
{
 if (IsIconic())
 {
  CPaintDC dc(this); // device context for painting
  .......
  dc.DrawIcon(x, y, m_hIcon);
 }
 else
 {
  gg->draw();///////////
  CDialog::OnPaint();
 }
}

COpenGLVCdDlg::OnKeyDown()//用来移动,转动,缩放景物
COpenGLVCdDlg::OnLButtonDown()//选择坐标原点
COpenGLVCdDlg::OnSize()//使OpenGl窗口适应对话框窗口

  dimage文件夹中的程序用来产生128,256,512的纹理文件;

  用法:

  1.用图片处理软件如画图,Photoshop等编辑,尺寸必须为128X128,256X256,512X512;

  另存为bmp文件格式;

  2.右击Bitmap-->import导入此位图文件;

  3.在文件Dimage.cpp中修改为导入的位图ID号;如IDB_BITMAP3;

void CDimageDlg::OnButton1()
{
 CDC* pdc=GetDC();
 CBitmap bmp;
 bmp.LoadBitmap(IDB_BITMAP3);
 BITMAP bit;
 bmp.GetBitmap(&bit);
 CDC bmpdc;
 bmpdc.CreateCompatibleDC(pdc);
 CBitmap *poldbm=bmpdc.SelectObject(&bmp);

 ....

  运行程序,输入文件名和选择大小,然后单击"输出",产生.txt格式的纹理文件;

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章