Головоломки > Конструирование и модификация головоломок
Куб с вращающимися ребрами, но не вертолет
T4r4sB:
Пришлось сильно искривить этот куб, чтоб центры попали ровно на середину ребер
Не думал, что шейпмоды меня когда-то снова заинтересуют, но его я быстро смоделировал и на компе показалось очень прикольно. Решил напечатать
Размер хз как мерять, но между соседними вершинами что-то типа 52 миллиметров, он довольно компактный
Вместо жёлтого - прозрачный, чтоб соригинальничать. Мб жёлтый лучше бы смотрелся, не знаю...
А ещё это мой первый опыт цветного куба без наклеек и плиток. Углы пришлось делать из 3 частей (ну и пары крепежных элементов между ними)
Вращается пока ужасно, потому что я видимо поддержки плохо зачистил и перетянул. На пальцах мозоли( И ещё когда контролируешь только углы, а не ребра, то это тоже вносит сложности
Из такого положения его почти нереально провернуть, потому что не за что хвататься. Звучит как идея для бандажа но хз как реализовать технически
Запутанный он такой:
grigr:
Чудная штучка )))) долго не мог понять что за фигня, потом дошло что это Киломинкс в очень необычной форме!!!
красивое ))) хотя выглядит как расплавленный кубик !
T4r4sB:
Спасибо) да, это киломинкс. Так-то шейпмодов типа "мегаминкс/киломинкс в кубе" дофига, но ни у одного нет центров в серединах ребер
grigr:
мне нравится! классно вышло )))
T4r4sB:
Не могу не вбросить по поводу традиционных систем моделирования
Вот например, форма граней задаётся седловой функцией по типу z=x2-y2:
--- Код: --- let dx = 26.0 - 22.0 * sqr(pos.y / 52.0) + 22.0 * sqr(pos.z / 52.0) - pos.x.abs();
let dy = 26.0 - 22.0 * sqr(pos.z / 52.0) + 22.0 * sqr(pos.x / 52.0) - pos.y.abs();
let dz = 26.0 - 22.0 * sqr(pos.x / 52.0) + 22.0 * sqr(pos.y / 52.0) - pos.z.abs();
if dx < 0.0 || dy < 0.0 || dz < 0.0 {
return 0;
}
--- Конец кода ---
А для того, чтоб угловой элемент разбить на три цветные грани, причём чтоб граница разбиения идеально попала на стык граней, я использовал примерно это:
--- Код: --- if dx < dy - hole && dx < dz - hole {
part_index += 1;
} else if dy < dz - hole && dy < dx - hole {
part_index += 2;
} else if dz < dx - hole && dz < dy - hole {
} else {
return 0;
}
--- Конец кода ---
Тут ещё с запасом на допуск возникающий при печати
Мне интересно, как Солиды, Оншейпы и прочие тут выкручиваются
Навигация
Перейти к полной версии