e股脑电脑教程网
  • 首 页
  • 操作系统
  • 应用软件
  • 下载工具
  • 影音视频
  • 办公软件
  • 媒体制作
  • 网站建设
  • 平面设计
  • 数据库
  • 程序开发
  • 视频教程
编辑推荐: | 文章搜索:
您现在的位置: e股脑 >> 程序开发 >> ASP.net教程 >> VC2005下利用OpenGL实现三维绘图 >> 教程正文
 
教程搜索
 
 
相关教程
  • C++/CLI实战——HELLO
  • VC编写简单的序列号(SN)填写器
  • Visual Studio 2005体验泛型编程
  • C++/CLI基本数据类型探索
  • 用托管C++编写Windows服务
  • Visual C++ 2005图像编程之属性设置栏
  • Visual C++ 2005图像编程之工具栏
  • Visual C++ 2005图像编程之预备知识
  • 把其他C/C++编译器集成到VC2005中
  • VC.NET实现清爽便利的Windows游戏窗口
  • C++:最强大的.NET语言之可访问性
  • C++:最强大的.NET语言之装箱
  • C++:最强大的.NET语言之内存与资源
  • C++:最强大的.NET语言之对象构造
  • Visual C++2005中开发自定义绘图控件
  • C++/CLI程序进程之间的通讯
 
 

图文教程


  • Windows抢了谁的饭碗 非主流操作系统To

  • 地球还是火星 平常心看“非主流”

  • 综合运用Office 2007批量制作奖状

  • 没有系统盘如何才能修复受损系统?

  • 巧妙运用Excel中边界的附加功能!
 
 
赞 助 商
 
 
VC2005下利用OpenGL实现三维绘图
  • 来源:e股脑
  • 点击次数:
  • 更新时间:2007-8-9
,GL_SHININESS,mat_shininess);

glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);

glLightfv(GL_LIGHT0,GL_POSITION, light_position);

glEnable(GL_LIGHTING);

glEnable(GL_LIGHT0);

glDepthFunc(GL_LESS);

glEnable(GL_DEPTH_TEST);

}

void CALLBACK display()

{

glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

auxSolidSphere(1.0); // 绘制半径为1.0的实体球

glFlush(); // 强制输出图像

auxSwapBuffers(); // 交换绘图缓存

Sleep(100);

}

void CALLBACK Idledisplay()

{

// x,y满足x2+y2=0.01。这样可以使物体沿该圆轨迹运动。

static float x=-.1,y=0.0;

static BOOL mark=TRUE;


static float step=.01;

x+=step;

if(x<=.1&&x>=-.1)

{

if(step>0)

y=sqrt(.01-x*x);

else

y=-sqrt(.01-x*x);

glTranslatef(x,y,0);

}

else

{

step=0-step;

}

display();

}

void CALLBACK myReshape(GLsizei w,GLsizei h)

{

glViewport(0,0,w,h);

glMatrixMode(GL_PROJECTION);

glLoadIdentity();

if(w<=h)

glOrtho(-3.5,3.5,-3.5*(GLfloat)w/(GLfloat)h, 3.5*(GLfloat)w/(GLfloat)h,-10,10);

else

glOrtho(-3.5*(GLfloat)w/(GLfloat)h,3.5* (GLfloat)w/(GLfloat)h,-3.5,3.5,-10,10);

glMatrixMode(GL_MODELVIEW);

glLoadIdentity();

}

void main()

{

auxInitDisplayMode(AUX_DOUBLE|AUX_RGBA);

auxInitPosition(0,0,400,400);

auxInitWindow(" circle ");

myinit();

auxReshapeFunc(myReshape);

auxIdleFunc(Idledisplay);

auxMainLoop(display);

}

在Visual C++ 2005下编译

cl a.cpp /linkopengl32.lib glu32.lib glaux.lib user32.lib gdi32.lib kernel32.lib advapi32.lib


上一页  1 2 
  • 上一篇教程: Visual C++ 2005中的命名返回值优化
  • 下一篇教程: C++/CLR泛型与C++模板之间的对比
  •  

    关于本站 | 广告联系 | 版权声明 | 使用帮助

    Copyright © 2004-2008 www.egunao.com All rights reserved.