E D R , A S I H C RSS

Interactive Graphics (rev. 1.3)

Interactive Graphics

Contents


Source code

주석은 차후에 다시
#include <gl\freeglut.h>

void Line()
{
	glLineWidth(5);
	glColor3f(0, 0, 0);
	glBegin(GL_LINES);
	glVertex2f(-1.0, 1.0);
	glVertex2f(1.0, -1.0);
	glEnd();
}

void Square()
{
	glColor3f(1, 0, 0);
	glBegin(GL_LINE_LOOP);
	glVertex2f(-0.7, 0.7);
	glVertex2f(-0.7, 0.2);
	glVertex2f(-0.2, 0.2);
	glVertex2f(-0.2, 0.7);
	glEnd();
}

void display()
{
	glClearColor(1, 1, 1, 1);
	glClear(GL_COLOR_BUFFER_BIT);
	Line();
	Square();
	glFlush();
}

int main(int argc, char**argv)
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
	glutInitWindowSize(600, 600);
	glutInitWindowPosition(200, 200);
	glutCreateWindow("Homework0_1");
	glutDisplayFunc(display);
	glutMainLoop();
	return 0;
}

#include <gl\freeglut.h>
#include <diging.h>

float speed = 0;

void Rec(float locationX, float locationY, float size)
{
	vec2 rec[4] = { { -size + locationX, size + locationY }, { size + locationX, size + locationY },
	{ size + locationX, -size + locationY }, { -size + locationX, -size + locationY } };
	glBegin(GL_QUADS);
	for (int i = 0; i < 4;i++)
		glVertex2fv(rec[i]);
	glEnd();
}

void idle()
{
	speed += 0.0005;
	glutPostRedisplay();
}

void display()
{
	glClearColor(0.5, 0.5, 0.5, 0.5);
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

	mat4 m(1.0);
	glMatrixMode(GL_MODELVIEW);
	glLoadMatrixf(matrix_to_float(m));
	m *= Translate(speed, 0.0, 0.0);
	glPushMatrix();
	glLoadMatrixf(matrix_to_float(m));
	glColor3f(1, 1, 1);
	Rec(-1.0, 0.2, 0.2);
	m *= Translate(speed, 0.0, 0.0);
	glPushMatrix();
	glLoadMatrixf(matrix_to_float(m));
	glColor3f(0, 0, 0);
	Rec(-1.0, -0.2, 0.2);
	glutSwapBuffers();
}

int main(int argc, char**argv)
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
	glutInitWindowPosition(200, 200);
	glutInitWindowSize(600, 600);
	glutCreateWindow("Homework2-1");
	glutIdleFunc(idle);
	glutDisplayFunc(display);
	glutMainLoop();

	return 0;
}

#include <gl\freeglut.h>
#include <math.h>

#define Round 0.2
#define PI 3.145926
#define radi2theta(x) x*PI/180.0

void cycle(float x, float y, float r, float g, float b)
{
	float dx = 0, dy = 0;
	glColor3f(r, g, b);
	glBegin(GL_POLYGON);
	for (float i = 0; i < 360; i += 0.01)
	{
		dx = Round*cos(radi2theta(i));
		dy = Round*sin(radi2theta(i));
		glVertex2f(x + dx, y + dy);
	}
	glEnd();
}

void display()
{
	glClearColor(1.0, 1.0, 1.0, 1.0);
	glClear(GL_COLOR_BUFFER_BIT);

	cycle(-0.7, 0.7, 1, 0, 0);
	cycle(-0.25, 0.7, 0, 1, 0);
	cycle(0.2, 0.7, 0, 0, 1);

	glFlush();
}

int main(int argc, char** argv)
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
	glutInitWindowSize(600, 600);
	glutInitWindowPosition(200, 200);
	glutCreateWindow("Homework0_3");
	glutDisplayFunc(display);
	glutMainLoop();
	return 0;
}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:27
Processing time 0.0164 sec