Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ru_Led_Cube_6.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
144.43 Кб
Скачать

60. Программное обеспечение. Эффект 4-рост и сжимание коробки

Каркасная коробка - хорошая геометрическая форма, чтобы показать в монохроме 8x8x8 светодиодный куб. Это дает очень хороший 3D эффект. Мы сделали две функции мультипликации коробки для светодиодного куба. Effect_box_shrink_grow ()рисует каркасную коробку,заполняющую весь куб, а затем сжимает её до одного вокселя в одном из 8 углов.Мы вызываем эту функцию один раз для каждого из 8 углов, чтобы создать красивый эффект.

Effect_box_woopwoop () рисует окно, которое начинается как 8x8x8 каркасные коробки,заполняя весь куб. Затем оно сжимается до 2x2x2 поля в центре куба. Или в обратном порядке.

Какработает effect_box_shrink_grow ():

Требуется четыре аргумента - number of iterations (число итераций),rotation (поворот), flip (зеркальное отражение) и delay (задержка). Вращение определяет вращение вокруг Оси Z с интервалом в 90 градусов. Flip > 0переворачивает куб вверх вниз.

Функция сделана максимально простой, она рисует рамку из 0,0,0 в любую точку по диагонали между 0,0,0 и 7,7,7, затем использует функции зеркального отражения изdraw.c, чтобы повернуть его.

1) Войдите в главную итерацию цикла.

2) Введите цикл For ()от 0 до 15.

3) УстановитеXYZ к 7-i. Это сделает XYZобратной i. Мы хотим сначала уменьшить окно, а затем увеличить. XYZ–точка по диагонали.

4) Когда i = 7, окноуменьшится к 1x1x1, и мы не можем больше уменьшать его. Если i больше, чем 7, XYZ установлен в i-8, который делает переходXYZ от 0 до 7, когда i переходит от 8 до 15.

5) Пустой куб задержать немного, чтобы убедиться, что куб погас. Отключите прерывание. Без отключения прерывания каркасная коробка кратковременно мигает в оригинальном вращении перед поворотом.

6) Изобразитекаркасную коробку, в первоначальном вращении. Сторона коробки всегда в 0,0,0, в то время как другаяпроходит вдоль диагонали.

7) Сделайте вращения. Если flip - больше, чем 0, куб будет перевернутым.

8) Позвольте прерываниям показать теперь вращаемый куб.

9) Задержка некоторое время очищает куб.

Другая функция, участвующая в эффектекаркасной коробке– называется effect_box_woopwoop (). название woopwoop просто казалось естественным, когда мы увидели эффект, предоставленный на кубе.

Функция woopwoop только делает одну итерацию и принимает два аргумента:delay (задержку), иgrow(увеличение). Если grow, больше, чем 0, коробка увеличивается от 2x2x2 до 8x8x8.

Как это работает:

1) Очистка куба, заполнение буфер 0x00;

2) Цикл For() - от 0 до 3.

4) Установить ii как i. Если grow, указан, мы устанавливаем его в 3-i, полностью изменяя его.

5) Потяните каркасную коробку, с центром диагонали между 0,0,0 и 7,7,7. Один угол коробки использует координаты 4+ii по всем осям, перемещающихся от 4-7. Другой угол использует, 3-ii по всем осям, перемещающимся от 3-0.

6) Задержка на некоторое время, затем очистите куб.

Эти две функции используются в качестве одного единственного эффекта.

61. Программное обеспечение. Эффект-5, осивверх-вниз, приостановка ранда

Это - один из наших любимых эффектов. Воксели, случайно приостанавливаются в кубе, эффект дает хорошую 3D глубину, особенно если Вы двигаете своей головой, рассматривая эффект.

64 вокселя начинаются двигатьсяс одной из боковых стенок. Тогда им всем присваивают случайноеназначение на полпути от однойстенки до другой.

Цикл функции, 8 раз двигает каждый воксель ближе к назначению. После 8 повторений воксели приостановлены на различных расстояниях от того, где они начали. Затем функция делает паузу на некоторое время, отсюда такое название axis_updown_randsuspend. Затем цикл снова перемещает 8 раз воксели ближе к их заключительному назначению на противоположной стенке.

Рисунок вокселем сделан в отдельной функции, draw_positions_axis (), таким образом, он может использоваться в различных эффектах.

Вы, заметили, что описание для этого эффекта было менее определенным. Загрузите исходный код и изучите функции сами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]