Расстояние точки до поверхности NURBS

Я ищу простой способ вычисления минимального расстояния точки до поверхности nurbs с помощью matlab. Я ищу ближайшую точку = > не ортогональную проекцию.
Я читал о концепции выборки, чтобы начать, а затем сделать итерацию Ньютона, но в то время это превышает мои возможности matlab. Спасибо за помощь.

1 ответ

  1. Я ищу ближайшую точку = > не ортогональную проекцию.

    Ближайшая точка на поверхности-это ортогональная проекция вашей точки в пространстве на поверхность. Ортогональная в том смысле, что линия, соединяющая точку и проекцию, перпендикулярна касательной плоскости поверхности в проецируемой точке.

    Поверхность NURBS параметризуется двумя параметрами u и v . Вы также можете вычислить, как изменяется позиция как U resp. V изменения. Для этого вычисляются частичные дифференциалы. Вы должны получить пару касательных векторов, которые охватывают касательную плоскость. Теперь вы хотите, чтобы разница между точкой на плоскости и точкой в пространстве была ортогональна обоим этим векторам, т. е. имела точечное произведение нуля. Это означает, что вы получите два уравнения, одно для направления u и одно для направления v, которые помогут вам найти необходимые параметры u и v.

    Заметьте, однако, что эта система уравнений, вероятно, весьма нелинейна. Поэтому найдите хорошую компьютерную алгебру или численное программное обеспечение, чтобы найти все решения, а затем вычислите расстояние для каждого из них, чтобы выбрать минимальное.