OpenGL学习笔记2017/8/29
2024-10-08 00:15:49
OpenGL学习日志:
感谢doing5552 的OpenGL入门学习:http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html
相信有部分人还在使用pascal学习OpenGL(像我一样)说不定也有人经常会遇到莫名其妙的编译错误(即使只是一个模板)
经过十个多小时的研究,我终于找到了OpenGL的使用方法
首先,在百度上(也可以是别的搜索引擎)上找到叫做glutdlls37beta的压缩包,下载解压后全部放入bin->i386-win32下
接下来给出OpenGL框架:
uses gl,glu,glut;
procedure display;cdecl;
begin
glclear(GL_COLOR_BUFFER_BIT);
//这里写绘图语句
glflush();
end;
begin
glutinit(@argc,argv);
glutinitdisplaymode(glut_rgb or glut_single); //rgb颜色和单色位图
glutinitwindowposition(,);
glutinitwindowsize(,); //窗口大小
glutcreatewindow('zcy');
glutdisplayfunc(@display); //调用(最好不要带参数,如需要最好使用全局变量)
glutmainloop;
end.
相信OpenGL最简单的一个例子就是画一个立体的茶壶了吧?
uses gl,glu,glut;
var t:real;
procedure display;cdecl;
begin
glclear(gl_color_buffer_bit); //设置清屏颜色
glmatrixmode(gl_modelview);
glloadidentity;
glrotatef(t,,,); //旋转角度
glcolor3f(,,); //茶壶颜色
glutwireteapot(0.5); //画茶壶并设置茶壶大小
glflush;
end;
procedure keyboard(key:byte;x,y:longint);cdecl;
begin
t:=t+; //按一下就计数
display; //重绘
end;
begin
glutinit(@argc,argv);
glutinitdisplaymode(glut_rgb or glut_single);
glutinitwindowposition(,);
glutinitwindowsize(400,400);
glutcreatewindow('zcy');
glutdisplayfunc(@display);
glutkeyboardfunc(@keyboard);
glutmainloop;
end.
当然不只可以画茶壶,还可以画其他的几何体
详细请参考https://wenku.baidu.com/view/199d5b1a59eef8c75ebfb300.html的23页至25页
颜色的rgb数值也请参考以上网站的第12页(注意乘上255)
接下来给出http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html的第一个例子的pascal代码:
uses gl,glu,glut;
procedure mydisplay;cdecl; //注意!要写cdecl!!!(虽然我也不知道为什么,反正要写上)
begin
glclear(gl_color_buffer_bit);
glrectf(-0.5,-0.5,0.5,0.5);
glflush;
end;
begin
glutinit(@argc,argv);
glutinitdisplaymode(glut_rgb or glut_single);
glutinitwindowposition(,);
glutinitwindowsize(,);
glutcreatewindow('zcy');
glutdisplayfunc(@mydisplay);
glutmainloop;
end.
这一篇就写到这里,有兴趣的可以自己研究http://www.cppblog.com/doing5552/archive/2009/01/08/71532.html,最后再次感谢doing5552的OpenGL入门学习
最新文章
- Android 秒级编译 Freeline
- 玩转SSRS第九篇---匿名访问的一个间接方法
- js-原型以及继承小案例
- php超全局数组变量
- fastcgi 分布式
- 关于JS的一点summary
- 查看Nodejs 占用的端口
- 通过Driver获取数据库连接
- hadoop之eclipse环境的配置
- setOpaque(true);设置控件不透明
- ubuntu下安装UltraEdit
- MyDAL - 组件适用范围说明
- 原生JS的Ajax技术
- Similarity measure
- Python之线程 2 - Python实现线程
- 个人前端学习路线图与github优秀前端开发者的路线图推荐
- Dist
- [整理]Visual Studio 的Application Insights
- mybatis批量增加与删除——(十五)
- LoadRunner-参数化(添加参数值)