Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Листинг 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). Потом программа нарисует между ними линию, используя вызов библиотечной функции. Листинг будет выглядеть так:






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.