forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   натягивающейся круг (http://forum.boolean.name/showthread.php?t=3747)

jimon 25.06.2007 01:51

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

как сделать чтобы все обьекты растягивались в стороны и в итоге получался круг ?

мну тут подумал, пощитать центр круга (среднее ариф. позиции всех обьектов)
и каждому обьекту давать ускорее направленое от центра круга в локальной системе обьект-центр круга

правильно ли я мыслю ? как быть со стабильностью в такой системе ?
на каком етапе нужно "глушить" ето ускорение ? :)

HolyDel 25.06.2007 20:13

Re: натягивающейся круг
 
ускорение ето прилагаемая сила? а надо ли его тогда вообще глушить?

лимитирующие джойнты ето типа нитки? или типа палки?
имхо так и надо делать, исакть центр, и прикладывать силу, вектор которой направлен из центра к елементу системы.

jimon 25.06.2007 20:27

Re: натягивающейся круг
 
палки :)

Matt Merkulov 26.06.2007 15:25

Re: натягивающейся круг
 
Сделай, чтобы угол между смежными суставами стремился к 180 гр.

HolyDel 26.06.2007 19:50

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

Serendipity 18.07.2007 13:27

Re: натягивающейся круг
 
А по-моему вот так проще:
Ищешь точку ВНУТРИ фигуры.
Создаешь поле скоростей, направленных от точки и убывающих с расстоянием. Плечи должны передавать смещения между соседними узлами. Сместился один - смещает соседей.
Когда получишь около-окружность, она сама, за счет жестких связей, должна выравниваться.
Вот только не знаю, что получится, если ты очень сильно промахнешься с центром поля скоростей.
Алгоритм:
Ищем Центр поля скоростей внутри фигуры. (лучше внутри, хоть это и не строго)
В цикле по времени: {
..Обнуляем все смещения.
..Для каждого узла: Вычисляем скорость, запоминаем смещение, изменяем смещение соседей.
..Для каждого узла: Смещаем на результируюущее смещение.
}


Часовой пояс GMT +4, время: 03:06.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot