四角形を描画する

四角形を描画します。
枠線だけの四角と塗りつぶしの機能に分けました。

 

ファイル
main.cpp

main.cpp

#pragma comment(linker, "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
#include <GL/freeglut/freeglut.h>

#define WIDTH 320
#define HEIGHT 240

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();
}
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);
 glColor4f(1.0f,0.0f,1.0f,1.0f);
 Square2D(30,20,100,60,1.0f);
 glColor4f(0.0f,0.0f,1.0f,1.0f);
 Square2D(150,20,240,40,280,80,130,100,3.0f);
 glColor4f(0.0f,0.5f,0.0f,1.0f);
 SquareFill2D(40,150,90,200);
 glColor4f(1.0f,0.5f,0.0f,1.0f);
 SquareFill2D(150,170,300,150,280,200,170,220);
 glFlush();
}
void Init(){
 glClearColor(1.0, 1.0, 1.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;
}

 

 

 

 

 

 

 

最終更新:2014年12月24日 10:13
添付ファイル