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ł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ła :) - był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ęcia przycisku */ readkey(); /* Koniec. */ return 0;}END_OF_MAIN();