![]() |
|
|
Home | | Syllabus | |
Assignments | |
Documentation
Solution to Assignment 1, Problem 3
/*
* CSCI 384, Problem set 1
* Solution to Spiral problem
* September 25, 2003
*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <GL/glut.h>
#define PI 3.14159
/*Maximum vertices allowed*/
#define MAX_VERTICES 100
void myinit(void)
{
glClearColor(1.0, 1.0, 1.0, 1.0);
glColor3f(1.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-500.0, 500.0, -500.0, 500.0);
glMatrixMode(GL_MODELVIEW);
}
void display(void)
{
typedef GLfloat point2[2];
point2 vertices[MAX_VERTICES]; /*Array of vertices*/
int numVertices = 100; /* Number of vertices in spiral*/
int i,k;
/*Initialize spiral parameters*/
double xcenter = 0.0, ycenter = 0.0;
double initRad = 20.0;
double alphaDeg = 35.0;
double initAlpha = 0.0;
double rInc = 2.0;
/*Set up array of vertices*/
for (i = 0; i < numVertices; i ++){
vertices[i][0] = xcenter +
(initRad + i * rInc) * cos((initAlpha +alphaDeg*i) * PI/180.0);
vertices[i][1] = ycenter +
(initRad + i * rInc) * sin((initAlpha +alphaDeg*i) * PI/180.0);
}
glClear(GL_COLOR_BUFFER_BIT);
/*Draw vertices*/
glBegin(GL_LINES);
for( k= 0; k < numVertices; k++){
glVertex2fv(vertices[k]);
}
glEnd();
glFlush();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500,500);
glutInitWindowPosition(50,50);
glutCreateWindow("Spirals");
glutDisplayFunc(display);
myinit();
glutMainLoop();
return 0;
}
Home | | Syllabus | | Assignments | | Documentation
Constance Royden--croyden@mathcs.holycross.edu
|