Программирование игр для Windows. Советы профессионала


ТЕХНИКА ОПТИМИЗАЦИИ - часть 12


#include <stdio.h>

#include <graph.h>

float sin_table[360], cos_table[360];

main()

{

int index, x,y,xo,yo,radius,color,ang;

char far *screen = (char far *)0xA0000000;

// использовать библиотеку Microsoft для перехода

// в режим 320х200х256

_setvideomode(_MRES256COLOR);

// создать таблицы быстрого доступа

for (index=0; index<360; index++)

{

sin_table[index]= sin(index*3.14159/180} ;

cos_table[index]= cos(index*3.14159/180);

}

// нарисовать 1000 окружностей, используя встроенные

// функции sin и cos

for (index=0; index<1000; index++)

(

// получить случайные числа

radius = rand()%50;

xo = rand()%320;

yo = rand(}%200;

color = rand()%256;

for (ang=0; ang<3 60; ang++)

{

x = xo + cos(ang*3.14159/180) * radius;

У = yo + sin(ang*3.14159/180) * radius;

// нарисовать точку окружности

screen[(y<<6) + (y<<8) + x] = color;

}

}// все, ждать пока пользователь нажмет клавищу

printf("\nHit,a key to see circles drawn twith look up tables.");

getch();

_setvideomode(_MRES256COLOR);

// нарисовать 1000 окружностей, используя таблицы поиска

for (index=0; index<1000; index++)

{

// нарисовать случайную окружность

radius = rand()%50;

хо = randO %320;

уо = rand()%200;

color = rand()%256;

for (ang=0; ang<3 60; ang++)

{

x = хо + cos table[ang] * radius;

у = уо + sin_table[ang] * radius;

// нарисовать точку окружности

screen[(y<<6) + (y<<8) + x] = color;

} }

// подождать, пока пользователь нажмет любую клавишу

printf("\nHit any key to exit."};

getch();

_setvideomode(_DEFAULTMODE);

}

После запуска LOOKNUP.C вы должны согласиться, что справочные таблицы крайне удобны и могут здорово увеличить скорость выполнения программы.

Следующая тема будет касаться математики с фиксированной запятой.

Математика с фиксированной запятой

Математика с фиксированной запятой? Нет, это не новая точка зрения на дробные числа. Просто это немного другой путь рассмотрения компьютерной математики. 




Начало  Назад  Вперед



Книжный магазин