点到直线距离
Eigen::Vector3f pt_{ pt.x,pt.y,pt.z };
Eigen::Vector3f center_{ coefficients->values[0],coefficients->values[1],coefficients->values[2]};
Eigen::Vector3f direction_{ coefficients->values[3],coefficients->values[4],coefficients->values[5]};
内积方法
c
=
(
a
⋅
b
)
∣
b
∣
b
∣
b
∣
=
(
a
⋅
b
)
∣
b
∣
2
b
c=\frac{(a \cdot b)}{|b|} \frac{b}{|b|}= \frac{(a \cdot b)}{|b|^2} b
c=∣b∣(a⋅b)∣b∣b=∣b∣2(a⋅b)b
pt_ :红色点
(pt_ - center_) : a
direction_ : b
((pt_ - center_) -(pt_-center_).dot(direction_)/ pow(direction_.norm(),2)*direction_).norm()
使用夹角求sinθ计算
(pt_ - center_).norm() * sin(acos((pt_ - center_).dot(direction_) / ((pt_ - center_).norm() * direction_.norm())))
外积方法
点 p 到直线 ab 的距离:|a x b| / |b|
|a x b| 为平行四边形面积,底边|b|
(pt_- center_).cross(direction_).norm()/ direction_.norm()