All pastes #525454 Raw Edit

Miscellany

public cpp v1 · immutable
#525454 ·published 2007-05-31 11:25 UTC
rendered paste body
#include <allegro.h>#include <alleggl.h>#include <math.h>#include <time.h>#include <cstdlib>int r,g,b;void rysuj(float x1, float y1, float x2, float y2, float x3, float y3) ;void wywolaj(float x1, float y1, float x2, float y2, float x3, float y3, int limit){float a_x, a_y, b_x, b_y, c_x, x_y, c_y ;a_x=(float) (x1+x2)/2 ;a_y=(float) (y1+y2)/2 ;b_x=(float) (x1+x3)/2 ;b_y=(float) (y1+y3)/2 ;c_x=(float) (x2+x3)/2 ;c_y=(float) (y2+y3)/2 ;     if(limit==0) {rysuj(x1,y1,x2,y2,x3,y3);}     else {wywolaj(x1,y1,a_x,a_y,b_x,b_y,limit-1) ;wywolaj(x2,y2,a_x,a_y,c_x,c_y,limit-1) ;wywolaj(x3,y3,c_x,c_y,b_x,b_y,limit-1) ;};return ;}void rysuj(float x1, float y1, float x2, float y2, float x3, float y3) {     float z=-5;        glBegin(GL_TRIANGLES);        glColor3ub(r,g,b);        glVertex3f( x1,  y1, z);        glColor3ub(g,r,b);        glVertex3f( x2,  y2, z);        glColor3ub(b,g,r);       glVertex3f( x3,  y3, z);        glEnd();    }int main() {       /* Inicjalizacja Allegro oraz AllegroGL */    allegro_init();    install_allegro_gl();       /* Inicjalizacja obs&#322;ugi klawiatury */    install_keyboard();    /* OpenGL - sugerowany tryb ekranu */    allegro_gl_set(AGL_Z_DEPTH, 8);    allegro_gl_set(AGL_COLOR_DEPTH, 16);    allegro_gl_set(AGL_SUGGEST, AGL_Z_DEPTH | AGL_COLOR_DEPTH);    /* Ustawienie trybu graficznego */    set_gfx_mode(GFX_OPENGL_WINDOWED, 800, 600, 0, 0);       /* Czyszczenie ekranu */    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);    /* Nie wiem co, ale bez tego nie dzia&#322;a :) - by&#322;o domy?lnie projekcie AllegroGL w devie*/    glMatrixMode(GL_MODELVIEW);    glLoadIdentity();    glFrustum(-1.0, 1.0, -1.0, 1.0, 1, 60.0);   int nico=0;       float x1=-3 , y1=-2 , z1=-5,          x2=3  , y2=-2 , z2=-5,          x3=0  , y3=4, z3=-5,          x=0   , y=0  , z=-5 ,          angle1=0.05 , angle2=0.005 , angle3=0.005;int i=0 ;    while(!key[KEY_SPACE])    {         glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);                      wywolaj(x1,y1,x2,y2,x3,y3,7) ;       allegro_gl_flip();             r = abs(sin(x1)*255);       g = abs(cos(y2)*255);       b = abs(sin(y1)*255);        x1 = x + (x1  - x) * cos(angle3) + (y1  - y) * sin(angle3);        y1 = y - (x1  - x) * sin(angle3) + (y1  - y) * cos(angle3);        x2 = x + (x2  - x) * cos(angle3) + (y2  - y) * sin(angle3);        y2 = y - (x2  - x) * sin(angle3) + (y2  - y) * cos(angle3);               x3 = x + (x3  - x) * cos(angle3) + (y3  - y) * sin(angle3);        y3 = y - (x3  - x) * sin(angle3) + (y3  - y) * cos(angle3);    }       /* Wstrzymanie do naci?ni&#281;cia przycisku */    readkey();       /* Koniec. */    return 0;}END_OF_MAIN();