123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- program demo05;
- {$I zglCustomConfig.cfg}
- uses
- zgl_main,
- zgl_screen,
- zgl_window,
- zgl_timers,
- zgl_fx,
- zgl_render_2d,
- zgl_primitives_2d,
- zgl_math_2d,
- zgl_utils
- ;
- var
- calc : Integer;
- points : array[ 0..359 ] of zglTPoint2D;
- procedure Init;
- var
- i : Integer;
- begin
- zgl_Enable( CORRECT_RESOLUTION );
- scr_CorrectResolution( 800, 600 );
- for i := 0 to 359 do
- begin
- points[ i ].X := 400 + m_Cos( i ) * ( 96 + random( 32 ) );
- points[ i ].Y := 300 + m_Sin( i ) * ( 96 + random( 32 ) );
- end;
- end;
- procedure Draw;
- var
- i : Integer;
- begin
- // RU: Устанавливаем цвет и альфу для каждой вершины.
- // EN: Set color and alpha for each vertex.
- fx2d_SetVCA( $FF0000, $00FF00, $0000FF, $FFFFFF, 255, 255, 255, 255 );
- // RU: Рисуем прямоугольник с заливкой(флаг PR2D_FILL) с использованием отдельных цветов для каждой вершины(флаг FX2D_VCA).
- // EN: Render filled rectangle(flag PR2D_FILL) and use different colors for each vertex(flag FX2D_VCA).
- pr2d_Rect( 0, 0, 800, 600, $000000, 255, FX2D_VCA or PR2D_FILL );
- // RU: Рисуем в центре экрана круг с радиусом 128 пиксела.
- // EN: Render circle in the center of screen with radius 128 pixels.
- pr2d_Circle( 400, 300, 128, $000000, 155, 32, PR2D_FILL );
- INC( calc );
- if calc > 359 Then calc := 0;
- points[ calc ].X := 400 + m_Cos( calc ) * ( 96 + random( 32 ) );
- points[ calc ].Y := 300 + m_Sin( calc ) * ( 96 + random( 32 ) );
- // RU: Рисуем линии внутри круга.
- // EN: Render lines inside the circle.
- for i := 0 to 359 do
- pr2d_Line( 400, 300, points[ i ].X, points[ i ].Y, $FFFFFF, 255 );
- // RU: Рисуем эллипсы с заливкой и без, со сглаженными контурами(флаг PR2D_SMOOTH).
- // EN: Render filled ellipses with smoothed edges(flag PR2D_SMOOTH).
- pr2d_Ellipse( 400 + 300, 300, 64, 256, $FFFFFF, 55, 32, PR2D_FILL or PR2D_SMOOTH );
- pr2d_Ellipse( 400 + 300, 300, 64, 256, $000000, 255, 32, PR2D_SMOOTH );
- pr2d_Ellipse( 400 - 300, 300, 64, 256, $FFFFFF, 55, 32, PR2D_FILL or PR2D_SMOOTH );
- pr2d_Ellipse( 400 - 300, 300, 64, 256, $000000, 255, 32, PR2D_SMOOTH );
- end;
- Begin
- zgl_Reg( SYS_LOAD, @Init );
- zgl_Reg( SYS_DRAW, @Draw );
- scr_SetOptions( 800, 600, REFRESH_MAXIMUM, TRUE, TRUE );
- zgl_Init();
- End.
|