Я новачок у розробці ігор / графіки і граю з частинками (в 2D). Я хочу намалювати частинки близько один до одного, як крапля, як рідина / вода. Я не хочу малювати великі кола, що перекриваються, оскільки плівка не буде гладкою (і не надто великою). Я не знаю фізики, але я припускаю, що я хочу щось схоже на поверхневий натяг.
Я не зміг знайти нічого в stackexchange або в Google (можливо, я не знаю правильних ключових слів?). Поки що я знайшов два можливі рішення, але не можу знайти конкретну інформацію про алгоритми.
Один з них - обчислити увігнутий корпус частинок, які я вважаю крапкою. Я можу обчислити крапку, створивши клас еквівалентності (за відношенням "близько один до одного"). Як не дивно, мені не вдалося знайти жодного алгоритму, який би пояснював, як обчислити увігнутий корпус. Багато постів (і серед stackexchange) посилань на бібліотеки або комерційні продукти, які роблять це (мені потрібні бібліотеки для роботи в C #), але ніколи не існує жодного алгоритму. Також у цьому рішенні може виникнути проблема з колом частинок, який би не виявив порожній простір посередині.
Під час дослідження увігнутого корпусу я натрапив на щось, що називається альфа-формою. Яке, здається, саме те, що я хочу зробити, однак так само, як і увігнутого корпусу, я не знайшла жодного джерела, яке б пояснило, як вони насправді працюють. Я знайшов деякі презентаційні матеріали, але недостатньо для продовження. Це як великий секрет, який знають усі, крім мене: - /
Після обчислення увігнутої форми корпусу або альфа, я хочу зробити його кривою Безьє, щоб зробити його гладким і приємним.
Хоча я вважаю свій підхід трохи надто складним, можливо, я намагаюся вирішити це неправильно? Якщо ви можете запропонувати будь-яке інше рішення моєї проблеми, або пояснити, які мені бракують, я був би дуже радий і вдячний :-)
Дякую.