Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Листинг 4.1. Программа, рисующая точки (POINTY.C).
#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). Потом программа нарисует между ними линию, используя вызов библиотечной функции. Листинг будет выглядеть так:
|