【C\C++】空间中求一点到两点所构成的直线的距离
2016-07-27 09:11
447 查看
最近在做叶面重建的工作,构建叶面TIN的算法中会用到3维中点到直线的距离方程,一开始以为像二维一样有公式之类的,后来找了一下没有找到,就写了一个函数,分享一下
基本数学原理就是用余弦定理求出夹角,再求正弦值,然后求出高,
即点到线的距离。
double dis_3D(Point a,Point b,Point s){ double ab=sqrt(pow((a.X-b.X),2.0)+pow((a.Y-b.Y),2.0)+pow((a.Z-b.Z),2.0)); double as=sqrt(pow((a.X-s.X),2.0)+pow((a.Y-s.Y),2.0)+pow((a.Z-s.Z),2.0)); double bs=sqrt(pow((s.X-b.X),2.0)+pow((s.Y-b.Y),2.0)+pow((s.Z-b.Z),2.0)); double cos_A=(pow(as,2.0)+pow(ab,2.0)-pow(bs,2.0))/(2*ab*as); double sin_A=sqrt(1-pow(cos_A,2.0)); return as*sin_A; }
基本数学原理就是用余弦定理求出夹角,再求正弦值,然后求出高,
即点到线的距离。
相关文章推荐
- C++ unordered_map
- C++封装POSIX 线程库(四)使用封装的线程
- C++之STL(7) queue队列
- VC++中subclassdlgitem函数的功能及用法
- NYOJ A+B IV 小数相加(大数问题)
- C++ map的基本操作和使用
- C++ 逻辑运算符总结
- C语言实现在控制台同一行覆盖刷新输出,以及'\b'退格控制字符的使用
- C++,C++编程,Windows编程,MFC
- 带分割符的参数提取 C语言
- C++ 11 新特性之类型推断与类型获取
- c语言dfs解决n皇后问题
- c语言dfs解决全排列问题
- C++之STL(6)之 map 与 multimap 关联容器
- C语言空指针总结
- 【学习笔记】 C++里面的绑定类型
- Cpp Primer - constexpr
- 设计模式总结2
- 一起talk C栗子吧(第一百七十八回:C语言实例--字符和字符串输出函数一)
- 李洪强漫谈iOS开发[C语言-024]-表达式与赋值运算符