Вычислить значения Z по нормали к плоскости

нам нужно подогнать набор точек (x, y, z) к плоскости и получить подогнанное значение Z - Zi в точке (Xi, Yi).

Мы использовали Eigen Library для подгонки плоскости. https://gist.github.com/ialhashim/0a2554076a6cf32831ca

Теперь у нас есть нормаль к плоскости и центр тяжести всех точек.

Как я могу рассчитать значение оси Z в точке (xi, yi) со следующей информацией?

  1. Центроид всех точек
  2. Нормально к подогнанной плоскости

Спасибо!


person Maanu    schedule 23.11.2020    source источник


Ответы (1)


Вам нужно расстояние d до плоскости точки r=(xi,yi,zi).

У вас есть нормаль к плоскости n=(nx,ny,nz), которая должна быть единичным вектором, и единственная точка на плоскости p=(px,py,pz).

d = nx*(xi-px) + ny*(yi-py) + nz*(zi-pz)

что является скалярным произведением между нормальным n и относительным положением r-p.

Или, если вы хотите уравнение поверхности плоскости, то решите приведенное ниже уравнение для zi

nx*(xi-px) + ny*(yi-py) + nz*(zi-pz) = 0

zi = pz - (nx*(xi-px)+ny*(yi-py))/nz
person JAlex    schedule 23.11.2020
comment
Спасибо. Могу ли я взять центроид как единственную точку на плоскости? Когда я использовал Centroid в качестве точки, я получаю правильные значения для Z. - person Maanu; 23.11.2020
comment
Да, возьмите центроид для p. - person JAlex; 23.11.2020