![]() |
натягивающейся круг
помним мою задачку про джоинты
в общем теперь чисто теоретически ... есть N обьектов, которые сойденены лимитирующими джоинтами в нитку концы етой нитки сойденили тоже получаем такую систему как сделать чтобы все обьекты растягивались в стороны и в итоге получался круг ? мну тут подумал, пощитать центр круга (среднее ариф. позиции всех обьектов) и каждому обьекту давать ускорее направленое от центра круга в локальной системе обьект-центр круга правильно ли я мыслю ? как быть со стабильностью в такой системе ? на каком етапе нужно "глушить" ето ускорение ? :) |
Re: натягивающейся круг
ускорение ето прилагаемая сила? а надо ли его тогда вообще глушить?
лимитирующие джойнты ето типа нитки? или типа палки? имхо так и надо делать, исакть центр, и прикладывать силу, вектор которой направлен из центра к елементу системы. |
Re: натягивающейся круг
палки :)
|
Re: натягивающейся круг
Сделай, чтобы угол между смежными суставами стремился к 180 гр.
|
Re: натягивающейся круг
ну и прикладывай силу к каждому елементу направленную из центра окружности к елементу, а центр перерасчитывай каждый такт, вроде должно сработать.
|
Re: натягивающейся круг
А по-моему вот так проще:
Ищешь точку ВНУТРИ фигуры. Создаешь поле скоростей, направленных от точки и убывающих с расстоянием. Плечи должны передавать смещения между соседними узлами. Сместился один - смещает соседей. Когда получишь около-окружность, она сама, за счет жестких связей, должна выравниваться. Вот только не знаю, что получится, если ты очень сильно промахнешься с центром поля скоростей. Алгоритм: Ищем Центр поля скоростей внутри фигуры. (лучше внутри, хоть это и не строго) В цикле по времени: { ..Обнуляем все смещения. ..Для каждого узла: Вычисляем скорость, запоминаем смещение, изменяем смещение соседей. ..Для каждого узла: Смещаем на результируюущее смещение. } |
Часовой пояс GMT +4, время: 03:06. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot