2020-09-18

Mac系统下使用openGL

一、引库

在mac系统与Windows是不一样的,开头要这样写:

#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <GLUT/glut.h>

如果还要引数学的库的话,以及键盘输入:

#include <math.h>
#include <iostream>
using namespace std;

二、OpenGL初始化

初始化一些参数值

int main(int argc, char** argv)
{
glutInit(&argc,argv);
// Task 2
glutCreateWindow("Graphics Primitives");
glutDisplayFunc(define_to_OpenGL);
glutMainLoop();
}
///
void define_to_OpenGL()
{
glClearColor(1,1,1,1);
glClear(GL_COLOR_BUFFER_BIT);
// The stuff to appear on screen goes here
// Task 2
// Task 3
// Task 4
// Task 5
// Tasks 6, 7 and 8
glFlush();
}

Task2:设置维度
方法一:

//w:width, h:height, x,y: cordinates
glutInitWindowSize(w,h);
glutInitWindowPosition(x,y);

方法二:

//L=-100 units, R=+500 units, B=-200 units, T=200 units
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(L,R,B,T);

Task3:画线

glLineWidth(1.0);
glColor3f(?,?,?);
glBegin(GL_LINES);
glVertex2f(_,_); // start location
glVertex2f(_,_); // end location
glEnd();

Task4:画点

glPointSize(?);
glColor3f(?,?,?);
glBegin(GL_POINTS);
glVertex2f(?,?);
glEnd();

Task5:画sin

// draw a sine wave
int i;
float x,y;
glColor3f(0.0,0.0,1.0);
glPointSize(1);
glBegin(GL_POINTS);
for(i=0;i<361;i=i+5)
{
x = (float)i;
y = 100.0 * sin(i*(6.284/360.0));
glVertex2f(x,y);
}
glEnd();

Task6:画三角

glBegin(GL_TRIANGLES);
glVertex2f( _, _ );
glVertex2f( _, _ );
glVertex2f( _, _ );
glEnd();
\\如果要渐变的话,在每个角都要设置颜色参数
\\如果不要渐变的话
glShadeModel(GL_FLAT);

颜色参数:

glColor3f(0.0, 0.0, 0.0);  --> 黑色
glColor3f(1.0, 0.0, 0.0);  --> 红色
glColor3f(0.0, 1.0, 0.0);  --> 绿色
glColor3f(0.0, 0.0, 1.0);  --> 蓝色
glColor3f(1.0, 1.0, 0.0);  --> 黄色
glColor3f(1.0, 0.0, 1.0);  --> 品红色
glColor3f(0.0, 1.0, 1.0);  --> 青色
glColor3f(1.0, 1.0, 1.0);  --> 白色
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值