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入门学习

OpenGL学习笔记2017/8/29的更多相关文章

  1. OpenGL学习笔记3——缓冲区对象

    在GL中特别提出了缓冲区对象这一概念,是针对提高绘图效率的一个手段.由于GL的架构是基于客户——服务器模型建立的,因此默认所有的绘图数据均是存储在本地客户端,通过GL内核渲染处理以后再将数据发往GPU ...

  2. OpenGL学习笔记:拾取与选择

    转自:OpenGL学习笔记:拾取与选择 在开发OpenGL程序时,一个重要的问题就是互动,假设一个场景里面有很多元素,当用鼠标点击不同元素时,期待作出不同的反应,那么在OpenGL里面,是怎么知道我当 ...

  3. 《从零开始学Swift》学习笔记(Day 29)——访问级别

    Swift 2.0学习笔记(Day 29)——访问级别 原创文章,欢迎转载.转载请注明:关东升的博客 访问级别: Swift提供了3种不同访问级别,对应的访问修饰符为:public.internal和 ...

  4. JMeter接口学习笔记2017

    协议学习地址:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html 本篇学习笔记来自于慕课网上学习JMeter的学习笔记 学习 ...

  5. OpenGL学习笔记(1) 画一个三角形

    最近找实习有一丢丢蛋疼,沉迷鬼泣5,四周目通关,又不想写代码,写篇笔记复习一下,要好好学图形学啊 用OpenGL画一个三角形 项目的简介 记录一下跟着learnOpenGL学习的过程 笔记里的代码放在 ...

  6. OpenGL学习笔记5——嵌入Qt框架

    学习OpenGL也有段时间了,前几篇将GL最基本的画图过程解析了一下,后面进阶的就随项目需要再学.因为之前一直是用glut这个实用工具包来开发很方便,但是会附带一个控制台的窗口,实在觉得有些low,因 ...

  7. OpenGL学习笔记0——安装库

    最近需要做一个基于Zigbee室内无线定位的系统,受到TI公司ZigBee Sensor Monitor软件的启发,打算用OpenGL来做一个3D显示空间内物体位置的程序.学习阶段选择VS2010+O ...

  8. OpenGL 学习笔记 01 环境配置

    以下教程仅适用于Mac下的Xcode编程环境!其他的我也不会搞. 推荐教程:opengl-tutorial  本项目Github网址       OpenGL太可怕了...必需得把学的记下来,不然绝壁 ...

  9. OpenGL学习笔记之了解OpenGL

    OpenGL(全写Open GraphicsLibrary)是个定义了一个跨编程语言.跨平台的编程接口规格的专业的图形程序接口.它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层图形库. 说 ...

随机推荐

  1. iptables 命令大全

    1.连续端口配置 iptables可以方便的配置多个端口.其中根据端口的连续性,又可分为连续端口配置和不连续端口配置. 如: -A INPUT -p tcp –dport 21:25 -j DROP/ ...

  2. Android Butterknife使用方法总结

    原文链接:http://blog.csdn.net/donkor_/article/details/77879630 前言: ButterKnife是一个专注于Android系统的View注入框架,以 ...

  3. c++中变量、变量名、变量地址、指针、引用等含义

    首先了解内存,内存就是一排房间,编号从0开始,0,1,2,3,4,5...... 房间里面一定要住人,新人住进去了,原来的人就走了:不管你住不住,里面都有人. 编号就是地址.里面的人就是内容,为了我们 ...

  4. Python Fabric模块详解

    Python Fabric模块详解 什么是Fabric? 简单介绍一下: ​ Fabric是一个Python的库和命令行工具,用来提高基于SSH的应用部署和系统管理效率. 再具体点介绍一下,Fabri ...

  5. 关于java 线程的停止同时用 interrupt 和 join 的作用

    /** * @FileName: ThreadTest.java * @Description: * @Author : xingchong * @CreateTime: Sep 22, 2018 1 ...

  6. JS数组 呼叫团里成员(使用数组元素) myarray[0]

    呼叫团里成员(使用数组元素) 我们知道数组中的每个值有一个索引号,从0开始,如下图, myarray变量存储6个人的成绩:   要得到一个数组元素的值,只需引用数组变量并提供一个索引,如: 第一个人的 ...

  7. 判断语句(if...else)if...else语句是在指定的条件成立时执行代码,在条件不成立时执行else后的代码

    判断语句(if...else) if...else语句是在指定的条件成立时执行代码,在条件不成立时执行else后的代码. 语法: if(条件) { 条件成立时执行的代码 } else { 条件不成立时 ...

  8. R语言进行广州租房可视化

    又到了一年一度的换租房的季节,在广州,想要找到一处好一点的租房真心不容易,不是采光不好,就是价格太贵,怎么才能找到合适自己的房子呢?于是我利用“造数”这个虫工具爬取了安居客网的广州租房的数据,通过分析 ...

  9. vue中使用动画vue-particles实现背景粒子酷炫效果

    先来看我做的效果 我这个是用的背景色加上这个粒子效果实现的demo 平时我们做项目的话会添加背景图片这些,可能更加好看 看我的实现步骤 cnpm install -g vue-cli vue init ...

  10. C++ 系列:extern

    extern 作用1:声明外部变量现代编译器一般采用按文件编译的方式,因此在编译时,各个文件中定义的全局变量是互相透明的,也就是说,在编译时,全局变量的可见域限制在文件内部. 例1:创建一个工程,里面 ...