XGM.guru предоставляет обширные ресурсы для разработчиков игр: инструменты, модели, текстуры и руководства для платформ как Unreal, Unity, Godot. Это идеальное место для обмена знаниями и опытом, участия в проектах и вдохновения на новые идеи. Присоединяйтесь к нашему сообществу и вносите свой вклад в мир разработки игр, повышая свои профессиональные навыки и находя новые возможности для творчества.
Применений несколько, все даже не назову, но вот ближайший кейс.
Есть некоторая камера, которая смотрит на построенную кривую безье. В точке, на которую мы указали/нажали должен появиться новый объект.
Т.е. наши базовые данные: 3 точки кривой, луч (позиция+направление) направленный из камеры.
Задача: определить ближайшую к кривой точку и выполнить с ней нужные манипуляции.
Использовать дробление на более мелкие отрезки я не хочу, т.к. это очень затратно, особенно если кандидатов на пересечение будет больше. Габаритный тест решит проблему, но только частично.
Пробовал делить на отрезки более экономно (поделить на три отрезка, вычислить квадрат расстояния, отсеять, снова поделить, и так несколько раз), но результат такого деления становится некорректным, когда указатель оказывается чуть дальше.
В принципе ладно, ответ "нельзя" меня устраивает, просто надеялся, мало ли.
Очень сомневаюсь в "нельзя". Если искать пересечение между линией и плоскостью, но используя вместо уравнения плоскости уравнение безье то наверное может получиться. Советую спросить не здесь, а на stackoverflow/math.stackexchange
Собственно, я говорил про "в общем виде", когда ещё не было внесено никаких уточнений. И да, действительно, "в общем виде" в целом редко что оказывается "льзя".
Советую спросить не здесь, а на stackoverflow/math.stackexchange
Ред. Clamp
Формула кривой безье третьего порядка выглядит так:
Есть некоторая камера, которая смотрит на построенную кривую безье. В точке, на которую мы указали/нажали должен появиться новый объект.
Т.е. наши базовые данные: 3 точки кривой, луч (позиция+направление) направленный из камеры.
Задача: определить ближайшую к кривой точку и выполнить с ней нужные манипуляции.