Читайте также:
|
|
Со случайными числами и функцией Rnd мы с вами познакомились в 5.4. Попробуем нарисовать “звездное небо”. Для этого достаточно покрасить форму в черный или синий цвет и в случайных местах формы нарисовать некоторое количество разноцветных точек (скажем, 1000). Точка ставится методом PSet. Как сделать координаты и цвет точки случайными? Тот же Rnd. Ваша форма имеет размеры Width´Height, количество цветов равно 16777216, поэтому обращение к методу рисования одной точки случайного цвета будет выглядеть так:
PSet (Width * Rnd, Height * Rnd), 16777216 * Rnd
Этот оператор нужно просто выполнить 1000 раз:
For i = 1 To 1000
PSet (Width * Rnd, Height * Rnd), 16777216 * Rnd
Next
Результат будет ярче, если точки будут иметь случайную толщину (1 или 2).
Имейте в виду, что сколько бы раз вы не запускали программу с указанным фрагментом, картина созвездий на экране будет абсолютно одинакова. Если вам нужно, чтобы от запуска к запуску набор значений случайной величины менялся (а значит и созвездия), употребите разик до использования функции Rnd процедуру Randomize.
Задание 79: “Звезды в окне”. Звездное небо в пределах прямоугольника.
Задание 80: “Дождь в луже”. Заполните форму окружностями или эллипсами радиуса 200 в случайных местах.
Задание 81: “Мыльные пузыри”. То же самое случайных радиусов и цветов.
Задание 82: “Сноп света в глаза”. То есть пучок лучей, выходящих из одной точки. Реализуется множеством случайных разноцветных отрезков прямых, причем одна точка всех отрезков не случайна, а находится в центре формы.
Задание 83: “Стог сена”. Множество случайных разноцветных отрезков прямых преимущественно желтоватых оттенков, причем одна точка любого отрезка находится в случайной точке левой трети стога, другая - в случайной точке правой. Размер стога - 6000 на 6000. Используйте функцию RGB со случайными аргументами.
Задание 84: “Атака абстракциониста”. На экране бесконечно рисуется большое количество случайных разноцветных залитых прямоугольников или эллипсов. Совет: Если ваш компьютер быстрый, то прямоугольники или эллипсы будут сменять друг друга с огромной скоростью, что может вам не понравиться. Чтобы замедлить работу компьютера, обычно используют таймер. Но поскольку вы с ним не знакомы, вставьте для замедления внутрь цикла оператор, который, ничего не изменяя на экране, будет выполняться достаточно долго. Обычно для этих целей используют " пустой цикл ":
For j = 1 To 1000000: Next
Пока компьютер досчитает до миллиона, пройдет некая значительная доля секунды.
Задание 85: "Летающие тарелки в космосе". Они получатся, если по нажатии одной кнопки вы будете добавлять на форму очередную порцию звезд, а по нажатии другой - очередную летающую тарелку из задачи 68, но случайного размера и в случайном месте, что нелегко. Подсказка без пояснений: При рисовании тарелки не используйте Rnd внутри цикла, все случайные значения присвойте переменным выше цикла.
Дата добавления: 2015-11-16; просмотров: 44 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Способ - Рисуем при помощи графических методов | | | Зачем нужны процедуры пользователя |