KnigkinDom.org» » »📕 Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория»

Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория»

Книгу Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория» читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

1 ... 163 164 165 166 167 168 169 170 171 ... 192
Перейти на страницу:

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
class="cite">

Private Sub Command1_Click()

   Circle (500, 1000), 10 °Circle (800, 1000), 100

   Circle (1100, 1000), 100

   Circle (1400, 1000), 100

   Circle (1700, 1000), 100

   Circle (2000, 1000), 100

   Circle (2300, 1000), 100

   Circle (2600, 1000), 100

   Circle (2900, 1000), 100

End Sub

При вводе этой программы вас будет раздражать необходимость вводить много раз почти одно и то же. Воспользуйтесь копированием, которое объяснено в Приложений.

Мы видим, что здесь Visual Basic 9 раз выполняет один и тот же метод, причем при каждом следующем обращении первый параметр вырастает на 300.

Придумаем для первого параметра переменную величину, например, х. Немного изменим программу:

Private Sub Command2_Click()

   х = 500

   Circle (x, 1000), 100 х = х + 300

   Circle (x, 1000), 100 х = х + 300

   Circle (х, 1000), 100 х = х + 300

   Circle (х, 1000), 100 х = х + 300

   Circle (х, 1000), 100 х = х + 300

   Circle (х, 1000), 100 х = х + 300

   Circle (х, 1000), 100 х = х + 300

   Circle (х, 1000), 100 х = х + 300

   Circle (х, 1000), 100 х = х + 300

End Sub

Здесь последний оператор х = х + 300 я написал только для красоты, от него нет никакой пользы, хотя и вреда тоже особого нет.

Эта программа рисует абсолютно то же самое, что и предыдущая, но она проще нее, так как не пришлось самим вычислять координаты.

Что мы видим? Мы видим, что программа состоит из нескольких одинаковых фрагментов. Это прямое приглашение применить цикл:

Dim х As Long

   Private Sub Command3_Click()

   x = 500

   Do Until x > 2900

   Circle (x, 1000), 100

   x = x + 300

   Loop

End Sub

Эта программа тоже рисует абсолютно то же самое, что и две предыдущие, но она короче. Здесь я перестраховался и объявил переменную х, как целую. Иначе при многократном прибавлении 300 могло бы оказаться, что результат равен не 2900, а, скажем, 2900.0000067 (Такой же случай я рассматривал в 0). А это значит, что последняя окружность не была бы нарисована. Можно было бы перестраховаться по-другому: вместо Do Until х > 2900 написать Do Until х > 2901.

Задание 63: Попробуйте уменьшить расстояние между центрами окружностей, не изменяя их радиуса, нарисовав их плотнее, чтобы они пересекались, еще плотнее, пока они не образуют "трубу".

Задание 64:. Удлините трубу налево и направо до краев формы.

Задание 65: Увеличьте толщину трубы.

Заставим окружности вести себя посложнее. Например, расположим их не по горизонтали, а по диагонали формы в направлении от левого верхнего угла в правый нижний. Для этого организуем еще одну переменную — вертикальную координату у — и заставим ее тоже изменяться одновременно с х.

Private Sub Command4_Click()

   х = 500 у = 200

   Do Until x > 2900

   Circle (x, y), 100

   x = x + 300

   у = у + 200

   Loop

End Sub

Если мы захотим менять радиус, то организуем переменную R.

Задание 66: "Очередь трассирующими". Нарисуйте ряд точек по направлению из левого нижнего угла в правый верхний.

Задание 67: "Круги на воде или радиоволны". Нарисуйте пару десятков концентрических окружностей, то есть окружностей разного радиуса, но имеющих общий центр.

Задание 68: "Компакт-диск" и "Летающая тарелка". Если радиус самого маленького "круга на воде" будет порядка 500, а самого большого — во весь экран, и если радиусы соседних окружностей будут различаться на 10–30 твипов, то на экране вы увидите привлекательный "компакт-диск". Сделайте его золотым (Yellow). Если получилось, то сделайте ему внутренний и наружный ободки другого цвета. А теперь "положите" диск, то есть нарисуйте его не из окружностей, а из эллипсов, сжатых по вертикали. Получится "летающая тарелка".

Задание 69: Не трогая х, а меняя только у и R, вы получите "коническую башню".

Задание 70: Меняя все три параметра, вы получите трубу, уходящую в бесконечность.

Задание 71: Разлинуйте экран в линейку.

Задание 72: А теперь в клетку.

Задание 73: А теперь в косую линейку.

Задание 74: Начертите ряд квадратов.

Чтобы получить интересные и сложные рисунки, нужно использовать богатые возможности Visual Basic: вложенные циклы, ветвление внутри цикла и т. д., например:

Задание 75: Нарисуйте шахматную доску.

Помощь: Здесь основные трудности возникнут при раскраске клеток в шахматном порядке. У Волченкова [См. список литературы] я встретил такую идею, касающуюся того, какие клетки закрашивать, а какие нет: Те клетки, у которых сумма номеров строки и столбца четная — закрашивать, остальные — нет.

Задание 76: "Ковер" или "Кольчуга". В задании 62 вы рисовали горизонтальный ряд пересекающихся окружностей. Теперь нарисуйте один под другим много таких рядов.

Указания: Здесь вам понадобятся вложенные циклы. Если центры соседних окружностей отстоят друг от друга на одинаковое расстояние как по горизонтали, так и по вертикали, и если удачно подобраны остальные числа, то у вас получится красивый ковер во весь экран с аккуратными краями.

Задание 77: Пусть у этого ковра будет вырезан левый нижний угол.

Задание 78:… и вдобавок вырезан квадрат посередине.

Использование случайных величин при рисовании

Со случайными числами и функцией Rnd мы с вами познакомились. Попробуем нарисовать "звездное небо". Для этого достаточно покрасить форму в черный или синий цвет и в случайных местах формы нарисовать некоторое количество разноцветных точек (скажем, 1000). Точка ставится методом PSet. Как сделать координаты и цвет точки случайными? Тот же Rnd. Ваша форма имеет размеры WidthxHeight, количество цветов равно 16777216, поэтому обращение к методу рисования одной точки случайного цвета будет выглядеть так:

PSet (Width * Rnd, Height * Rnd), 16777216 * Rnd

Этот оператор нужно просто выполнить 1000 раз:

For i = 1 То 1000

    PSet (Width * Rnd, Height * Rnd), 16777216 * Rnd

Next

Результат будет ярче, если точки будут иметь случайную толщину (1 или 2). Имейте в виду, что сколько бы раз вы не запускали программу с указанным фрагментом, картина созвездий на экране будет абсолютно одинакова. Если вам нужно, чтобы

1 ... 163 164 165 166 167 168 169 170 171 ... 192
Перейти на страницу:
Отзывы - 0

Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор knigkindom.ru.


Партнер

Новые отзывы

  1. Christine Christine26 июнь 01:23 ​​​​Сначала было тежеловта читать, но потом всё изменилось, я с удовольствием прочитала, спасибо за книгу. Я прочитала весь цикл... Опасное влечение - Полина Лоранс
  2. Тамаринда Тамаринда21 июнь 12:33 Редко что-то цепляет, но тут было всё живое, жизненное, чувственное, сильное, читайте, не пожалеете о своём времени...... Хрупкая связь - Ольга Джокер
  3. Гость Марина Гость Марина20 июнь 06:08 Книга очень понравилась, хотя и длинная. Героиня сильная личность. Да и герой не подкачал. ... Странная - Татьяна Александровна Шумкова
Все комметарии
Новое в блоге