Я ищу простой способ вычислить минимальное расстояние точки до поверхности nurbs с помощью Matlab. Я ищу ближайшую точку => не ортогональная проекция. Я читал о концепции выборки, чтобы начать, а затем выполнить итерацию Ньютона, но в то время это превышает мои возможности Matlab. Спасибо за помощь.
Расстояние от точки до NURBS-поверхности
Ответы (1)
Я ищу ближайшую точку => не ортогональная проекция.
Ближайшая точка на поверхности является ортогональной проекцией вашей точки в пространстве на поверхность. Ортогональный в том смысле, что линия, соединяющая точку и проекцию, перпендикулярна касательной плоскости поверхности в точке проекции.
Поверхность NURBS параметризуется двумя параметрами u и v. Вы также можете вычислить, как меняется позиция в зависимости от u, соответственно. v изменения. Для этого вы вычисляете частные дифференциалы. Вы должны получить пару касательных векторов, которые охватывают касательную плоскость. Теперь вы хотите, чтобы разница между точкой на плоскости и точкой в пространстве была ортогональна обоим этим векторам, то есть имела нулевой скалярный продукт. Это означает, что вы получите два уравнения, одно для направления u и одно для направления v, которые помогут вам найти u и v параметры, которые вам нужны.
Обратите внимание, однако, что эта система уравнений, вероятно, сильно нелинейна. Так что возьмите хорошее программное обеспечение для компьютерной алгебры или числовых вычислений, чтобы найти все решения, а затем вычислите расстояние для каждого из них, чтобы выбрать минимальное.