Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / [Решено] Забуксовал на школьной математике (5 стр)

[Решено] Забуксовал на школьной математике (5 стр)

Advanced: Тема повышенной сложности или важная.
Страницы: 1 2 3 4 5
MrShoorУчастникwww29 окт. 201722:00#60
foxes
> Его удалят из за разборки.
Я тебе не разборки предлагаю, а оффтопный диалог этот перенести туда.

foxes
> А это то что касается моих коллег.
То, что ты показываешь - это профессиональные качества, к коим у меня вопросов нет. Я же говорил про личностные. Короче заканчиваем оффтопить тут. Все дальнейшие посты на тему foxes как личность я буду безжалостно тереть.

MrShoorУчастникwww31 окт. 20173:10#61
FordPerfect
В общем твой вариант с весами не вышло опробовать, но я таки завел свой вариант, и он заработал как надо:
+ Показать

А принцип у меня такой.
За основу я взял твою идею: сначала посчитать просто барицентрические координаты, а потом добавить по чуть-чуть в зависимости от близости к грани. Осталось найти сколько это чуть-чуть.
Поэтому сначала я ищу выталкивающий вектор, а потом 2 точки пересечения прямой, лежащей на векторе с:
1. Гранью по которой выталкиваем
2. Окружностью (дальней точкой из двух)
На рисунке искомый сегмент отмечен красным:
+ Показать

Ну а потом зная длину красного сегмента уже не проблема посчитать насколько надо сдвинуть точку. Код конечно вышел так себе (там и нахождения центра окружности, и решение квадратного уравнения, и пересечение сегментов), но проще что-то не могу придумать.
Вот собственно код:
+ Показать

EvalOffset считает этот самый красный отрезочек а EvalPos двигает в соответствии с весом + обрабатывает граничные случаи.

С твоим вариантом я покрутил, и меня не устраивает топология для тупоугольных треугольников. Оно некисло так будет смещать вершины, сильно растягивая в некоторых местах треугольники. Ну то есть смещать надо полюбому по векторам, которые как я описал (а не по нормали к грани).

Ах, да, и спасибо за идеи.

Правка: 31 окт. 2017 3:18

Страницы: 1 2 3 4 5

/ Форум / Программирование игр / Общее

2001—2018 © GameDev.ru — Разработка игр