Сингулярный коллапс

Описание проекта: "Эффект коллапса"

Цель проекта

Создание визуального эффекта, имитирующего коллапс объекта, используя 3D-моделирование в OpenSCAD. Проект демонстрирует, как можно комбинировать различные геометрические формы и трансформации для достижения интересного визуального результата.

Исходные данные

В проекте используется базовая геометрия: сфера и цилиндр. Сфера представляет собой основной объект, а цилиндр создает эффект "разрушения" или "коллапса" в нижней части сферы.

Структура проекта

  1. Модуль singularity():

    • Этот модуль создает основную геометрическую форму, состоящую из сферы и цилиндра.
    • Сфера имеет радиус 30 единиц.
    • Цилиндр, расположенный ниже сферы, имеет высоту 60 единиц и радиус 10 единиц. Он смещен вниз на 30 единиц, чтобы создать эффект пересечения с сферой.
  2. Модуль collapse_effect():

    • Этот модуль отвечает за создание эффекта коллапса.
    • В цикле for происходит итерация от 0 до 10, что позволяет создать 11 экземпляров объекта singularity().
    • Каждый экземпляр объекта вращается на 36 градусов вокруг оси Z и поднимается на 3 единицы по оси Z, создавая эффект движения вверх.
    • Также применяется масштабирование, которое уменьшает размеры объектов по осям X и Y на 5% с каждой итерацией, что создает иллюзию сжатия и коллапса.

Визуальный результат

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

Заключение

Проект "Эффект коллапса" демонстрирует возможности OpenSCAD для создания сложных визуальных эффектов с использованием простых геометрических форм и трансформаций. Это отличный пример того, как можно комбинировать программирование и искусство для создания уникальных 3D-объектов.

$fn=10;

module singularity(){
    difference(){
        sphere(r=30);
        translate([0, 0, -30])
            cylinder(h=60, r=10);
    }
}

module collapse_effect(){
    for(i = [0 : 10]){
        rotate([0, 0, i * 36])
            translate([0, 0, i * 3])
                scale([1 - i * 0.05, 1 - i * 0.05, 1])
                    singularity();
    }
}

collapse_effect();
3D вид:
Скачать stl файл