LoginSignup
2
2

More than 5 years have passed since last update.

Macで GLUT + OpenGL のんびりいこう#4 Draw Square

Last updated at Posted at 2015-01-11

前提

Mac OSX 10.12.1
Developer Tool

目標

四角形の描画

Square.cpp

Square.cpp
#include <GLUT/glut.h>

#define WIDTH 640
#define HEIGHT 480

//描画関数:始点x,y、終点x,y,サイズ
void Square2D(int x1,int y1,int x2, int y2,float size){
    glLineWidth(size);
    glBegin(GL_LINE_LOOP);
    glVertex2i(x1,y1);
    glVertex2i(x2,y1);
    glVertex2i(x2,y2);
    glVertex2i(x1,y2);
    glEnd();
}
//描画関数:各点を指定、サイズ
void Square2D(int x1,int y1,int x2, int y2,int x3,int y3,int x4,int y4,float size){
    glLineWidth(size);
    glBegin(GL_LINE_LOOP);
    glVertex2i(x1,y1);
    glVertex2i(x2,y2);
    glVertex2i(x3,y3);
    glVertex2i(x4,y4);
    glEnd();
}
//描画関数:塗りつぶし、始点x,y、終点x,y,サイズ
void SquareFill2D(int x1,int y1,int x2, int y2){
    glBegin(GL_QUADS);
    glVertex2i(x1,y1);
    glVertex2i(x2,y1);
    glVertex2i(x2,y2);
    glVertex2i(x1,y2);
    glEnd();
}
//描画関数:塗りつぶし、各点を指定、サイズ
void SquareFill2D(int x1,int y1,int x2, int y2,int x3,int y3,int x4,int y4){
    glBegin(GL_QUADS);
    glVertex2i(x1,y1);
    glVertex2i(x2,y2);
    glVertex2i(x3,y3);
    glVertex2i(x4,y4);
    glEnd();
}

void display(void){
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    //1
    glColor4f(1.0f,0.0f,1.0f,1.0f);
    Square2D(30,20,200,120,1.0f);
    //2
    glColor4f(0.0f,0.0f,1.0f,1.0f);
    Square2D(300,20,400,60,500,120,250,100,3.0f);
    //3
    glColor4f(0.0f,0.5f,0.0f,1.0f);
    SquareFill2D(30,250,500,400);
    //4
    glColor4f(1.0f,0.5f,0.0f,1.0f);
    SquareFill2D(350,170,500,150,480,200,370,220);
    glFlush();
}

void Init(){
    //背景色を黒に設定
    //glClearColor(1.0, 1.0, 1.0, 1.0);
    glClearColor(0.0, 0.0, 0.0, 1.0);   
    glOrtho(0, WIDTH, HEIGHT, 0, -1, 1);
}

int main(int argc, char *argv[])
{
    glutInitWindowPosition(100, 100);
    glutInitWindowSize(WIDTH, HEIGHT);
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGBA);
    glutCreateWindow("四角形を描画");
    glutDisplayFunc(display);
    Init();
    glutMainLoop();
    return 0;
}

コンパイル

framework指定が要点です。
g++ -o Square Square.cpp -framework GLUT -framework OpenGL
osのバージョンによってはワーニングがうるさいので。-w
g++ -o Square Square.cpp -framework GLUT -framework OpenGL -w

Result

スクリーンショット 2015-01-12 1.34.39.png

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2