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

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


person Sandra C.    schedule 16.01.2017    source источник
comment
ближайшая точка => не ортогональная проекция, что вы имеете в виду? Тем не менее, у меня такое ощущение, что это слишком широко, так как вы просите целый алгоритм. Вы должны были бы сделать некоторые исследования самостоятельно!   -  person Ander Biguri    schedule 16.01.2017
comment
@AnderBiguri, эквивалент 1D: расстояние по вертикали от точки до линии и расстояние от точки до ближайшей точки на линии. Это ортогональная проекция против ближайшей точки. То же самое можно представить и для поверхности.   -  person Wolfie    schedule 16.01.2017
comment
Это одно и то же, не так ли? Ближайшее расстояние от прямой до точки — это ортогональное расстояние от прямой, проходящей через точку. Это верно и в 3D. По крайней мере, в евклидовом пространстве   -  person Ander Biguri    schedule 16.01.2017
comment
@AnderBiguri Я думаю, что это терминологическая смесь ... представьте, что у вас есть линия между (0,0) и (1,5). Очевидно, что расстояние между (1,0) и (1,5) равно 5, это расстояние по вертикали, и я думаю, что ОП означает ортогональную проекцию. Ближайшая точка будет образовывать прямой угол между (0,0) и (1,0) на линии. Первый ортогонален системе координат, второй создает ортогональные линии.   -  person Wolfie    schedule 17.01.2017
comment
Возможно, OP означает расстояние до патча, который может оказаться на стороне или в углу, а не ортогонально.   -  person Yves Daoust    schedule 18.01.2017


Ответы (1)


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

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

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

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

person MvG    schedule 17.01.2017