初学opengl(二)画散点图

作为一个计算机学院不合格的学生,大学都快过完了还处于编程小白的状态,各种知识都不会。作为初学的练习,自己写了一个简单的散点图。有些写的不对的地方或者可以改进的地方,还请大家指正。我是这么考虑的,opengl画出的窗口是一个空白的白板。散点图一般都是在一个坐标系中显示一些点。于是,首先要自己建立坐标系。然后随机生成一部分点,将这些点映射到建好的坐标系中,画出来。便是完成了。1.  画
摘要由CSDN通过智能技术生成

作为一个计算机学院不合格的学生,大学都快过完了还处于编程小白的状态,各种知识都不会。作为初学的练习,自己写了一个简单的散点图。有些写的不对的地方或者可以改进的地方,还请大家指正。


我是这么考虑的,opengl画出的窗口是一个空白的白板。散点图一般都是在一个坐标系中显示一些点。于是,首先要自己建立坐标系。然后随机生成一部分点,将这些点映射到建好的坐标系中,画出来。便是完成了。

1.  画直线。

opengl画直线的语句是

glBegin(GL_LINE);
     glVertex3f(25.0f,160.0f,0.0f);
     glVertex3f(225.0f,160.0f,0.0f); 
glEnd();
glBegin()的参数如果是GL_LINE,则只能画一条线,glBegin和glEnd之间的两句话用于指定直线的起点和终点。

glBegin()的参数如果是GL_LINES,则可以画多条直线,glBegin和glEnd之间可以有多个用于指定直线起点和终点的语句,但是必须为偶数个点。因为每两个点确定一条直线。

glVertex3f(),毫无疑问,是用来指定坐标的,这个例子是用float类型的数据来表示坐标,3是指三维坐标。还可以是glVertex2i(),这样的话是二维坐标,用int型数据表示坐标。

参考的这篇文章http://blog.csdn.net/ch_soft/article/details/7209208


2. 画用于表示坐标系的那些直线。

opengl的初始化中有这样一句话

gluOrtho2D(0.0, 200.0, 0.0, 150.0); 
gluOrtho2D建立一个二维图像投影矩阵,就是把opengl画出的这个窗口投影到一个坐标系中,gluOrtho2D的四个参数分别表示左右上下的大小,即gluOrtho2D(Xmin, Xmax, Ymin, Ymax). 这就是为什么在缩放所画窗口的时候,里边的元素还能保持相对的大小和位置。


以上在学习过程中参考http://www.cnblogs.com/fly1012/archive/2010/06/27/1766089.html

这样的话,向下就比较简单了。我先画了x轴和y轴两条长的线,然后分别两条短线做出箭头的效果。将每个轴划分成五段,事先计算好坐标,然后用for循环来画短线。再在分出的地方分别标上数值。这样,一个坐标系就建好了。

其实我一开始都是一条一条短线画的,手动计算的坐标。写完了才发现,其实这是重复的工作,可以用for循环来完成。又改程序。可是这个时候我连一维数据怎么用都忘了,其实也有很大一部分原因是因为没写过,所以不敢写。看过别人的

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值