Читайте также: |
|
#include <stdio.h>
#include <graph.h>
void main(void)
{
int х, у, index, color;
// перевести компьютер в графический режим
_setvideomode(_VRES16COLOR); // режим 640х480, 16 цветов
// нарисовать 10000 точек на экране, расположенных случайным образом
for(index = 0; index<10000; index++)
{
// получить случайные координаты и цвет
х = rand()%640;
у = rand()%480;
color = rand()%16;
_setcolor(color); // установить цвет для рисования точки
_setpixel(х,у); // нарисовать точку
} // конец цикла for
// ждать нажатия клавиши
while(!kbhit()){}
// восстановить текстовый режим
_setvideоmоde(_DEFAULTMODE);
} // конец функции main
Теперь разберемся, что делает эта программа:
Компьютер переводится в режим VGA с помощью вызова функции Си _setvideomode (VRES16COLOR). Это функция из графической библиотеки Microsoft. После этого программа входит в главный цикл. В структуре
FOR каждый раз случайным образом генерируются три числа: одно для цвета и два других для координат (х,у) позиции точки, которую мы хотим нарисовать:
§ Затем мы используем библиотечную функцию _setpixel(х,у), чтобы нарисовать точку на экране. Программа делает это 10000 раз, а потом останавливается;
§ Затем программа ждет нажатия любой клавиши, после чего происходит выход в DOS.
Если вы запустите программу несколько раз, то сможете заметить, что точки все время оказываются в одних и тех же местах. Как это получается? Дело в том, что мы пользуемся функцией rand (), которая не является в полном смысле генератором случайных чисел. Она возвращает так называемые псевдослучайные числа. Чтобы избежать этого, вам надо всякий раз при запуске устанавливать генератор случайных чисел с разными начальными значениями. Вставьте в начало программы функцию srand(int) — и все будет в порядке,
Линии
Линия, как вы знаете, — это кратчайший отрезок между двумя точками. Например, между точками (1,1) и (5,5) на плоскости линия будет выглядеть так (рис. 4.2):
Давайте изменим программу из Листинга 4.1 так, чтобы она рисовала линии вместо точек. Чтобы сделать это, нужно кое-что изменить. Вместо двух случайных чисел х и у теперь их будет четыре: (х1,у1) и (х2,у2). Потом программа нарисует между ними линию, используя вызов библиотечной функции. Листинг будет выглядеть так:
Дата добавления: 2015-07-12; просмотров: 91 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
МЕХАНИЗМЫ ДВУХМЕРНОЙ ГРАФИКИ | | | Листинг 4.2. Программа, рисующая линии (LINER.С). |