Duże białe pixele
#include <gl/glut.h>
#include <iostream>
using namespace std;
void myInit() {
glPointSize(10.0);
glClearColor(0.0, 0.0, 0.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0, 50, 0, 50);
glTranslatef(0.5, 0.5, 0);
}
void putpixel(int x, int y) {
glBegin(GL_POINTS);
glVertex2i(x, y);
glEnd();
}
void myDisplay() {
for(int i=0; i<50; ++i)
{
for(int j=0; j<50; ++j)
{
if((i+j)%2==0)
putpixel(i,j);
}
}
glFlush();
cout << "Juz gotowe" << endl;
}
int main(int argc, char **argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(0, 0);
glutCreateWindow("GLUT WINDOW");
myInit();
glutDisplayFunc(myDisplay);
glutMainLoop();
}
Duże kolorowe piksele
#include <gl/glut.h>
#include <iostream>
using namespace std;
void myInit() {
glPointSize(10.0);
glClearColor(0.0, 0.0, 0.0, 1.0);
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0, 50, 0, 50);
glTranslatef(0.5, 0.5, 0);
}
void draw_pixel(int x, int y, GLfloat r, GLfloat g, GLfloat b) {
glColor3f(r, g, b);
glBegin(GL_POINTS);
glVertex2i(x, y);
glEnd();
}
void myDisplay() {
for(int i=0; i<50; ++i)
{
for(int j=0; j<50; ++j)
{
draw_pixel(i, j, i/50.0, j/50.0, 25.0/(25+i+j));
}
}
glFlush();
cout << "Juz gotowe" << endl;
}
int main(int argc, char **argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(0, 0);
glutCreateWindow("GLUT WINDOW");
myInit();
glutDisplayFunc(myDisplay);
glutMainLoop();
}
Zadanie 1 Zaimplementuj rysowanie odcinków algorytmem DDA (dopuszczalne operacje na liczbach zmiennoprzecinkowych)
Zadanie 2 Zaimplementuj rysowanie odcinków algorytmem Bresenhama (tylko operacje na liczbach całkowitych)
Zadanie 3 Zaimplementuj rysowanie trójkąta algorytmem edge-to-edge.
Zadanie 4 Zaimplementuj rysowanie kolorowego trójkąta za pomocą współrzędnych barycentrycznych.