int xc = 450; // center of circle int yc = 100; int vx = 7; // velocity int vy = 5;
int r = 20; // radius
void drawFrame (int n ) {
if (( xc += vx ) >= getmaxx () - r || xc < r) {
xc -= vx; vx = -vx;
}

if (( yc += vy ) >= getmaxy () - г || ус < r) {

yc-=vy; vy =-vy;
}

circle ( xc, ус, r);

}
main () {
int driver = EGA; int mode = EGAHI; int res;

3. Графические примитивы

initgraph ( &driver, &mode,""); if ((res = graphresult ()) != grOk )
{
printf("\nGraphics error: %s\n", grapherrormsg (res)); exit (1 );
}
drawFrame (0 );
setactivepage ( 1 );
for (int frame = 1;; frame++ )
{
clearviewport (); drawFrame (frame); setactivepage (frame & 2 ); setvisualpage (1 - (frame & 2 )); if ( kbhit ()) break;
}
getch (); closegraph ();
}

Замечание. He все режимы поддерживают работу с несколькими страницами, например VGAHI поддерживает работу только с одной страницей.

3.10. Подключение Нестандартных драйверов устройств Иногда возникает необходимость использовать нестандартные драйверы устройств, например в случае, если вы хотите работать с режимом адаптера VGA разрешением 320 на 200 точек при количестве цветов 256 или режимами адаптера SVGA. Эти режимы стандартными драйверами, входящими в комплект Borland С++, не поддерживаются. Однако существует ряд специальных драйверов, предназначенных для работы с ними. Приведем пример программы, подключающей драйвер для работы с 256-цветным режимом высокого разрешения для VESA-совместимого адаптера SVGA и устанавливающей палитру из 64 оттенков желтого цвета.

El // File example5.cpp #include <conio.h> #include <graphics.h> #include <process.h> #include <stdio.h>
int huge myDetect ( void ) {
return 2; // return suggested mode #
}
main () {
int driver = DETECT;

Компьютерная графика. Полигональные модели

int mode; int res;
installuserdriver ("VESA", MyDetect); initgraph ( &driver, &mode,); if ((res = graphresult ()) != grOk )
{
printf("\nGraphics error: %s\n'\ grapherrormsg (res)); exit (1 );

⇐ Предыдущая| |Следующая ⇒