CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  图形处理/算法

如何判断空间三点是否共线?(急)

楼主qmj_xk()2006-03-13 10:31:13 在 VC/MFC / 图形处理/算法 提问

已知空间三点(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),怎样判断他们是否共线?谢谢! 问题点数:10、回复次数:5Top

1 楼rockersz(世上的无奈需要我去忍耐...)回复于 2006-03-13 11:08:12 得分 3

d^2   =   (x3-x1)^2   +   (y3-y1)^2   +   (z3-z1)^2   -  
              [(x2-x1)*(x3-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z3-z1)]^2/[(x2-x1)^2+(y2-y1)^2+(z2-z1)^2]  
  如果d=0,则三点共线Top

2 楼qmj_xk()回复于 2006-03-13 12:10:47 得分 0

为什么要这样做?还有没有更简单的方法?Top

3 楼happy__888([顾问团]寻开心 www.e-jjj.com)回复于 2006-03-13 12:34:45 得分 3

这个问题也许很复杂,也许很简单,关键要看应用的环境  
        方法一:   用三个点构成的面积来计算,用向量点积来计算  
        方法二:   用点到直线的距离公式计算,直接公式可以用,需要判断有无重合点  
   
  这个问题需要考虑定义域的大小的问题,这里主要是精度  
  对于数据很大的两个点,比如:   0   0   到   10000,   10000   中间有一个点5000,4999  
  它到直线的距离是0.7左右,那么算不算在直线上  
   
  而对于数据很小的两个点:   比如:     0   0   到   0.0002   0.0002     和   0.00001     0.00002  
  这时候点到直线的距离为0.00001很小,算不算在直线上  
  Top

4 楼sboom(+-LingCh-+)(爱美人不爱VC)回复于 2006-03-13 23:00:43 得分 2

用Hough变换  
   
  设一个带未知数的直线方程,用三个点的坐标代入得3个方程的方程组,如果这个联立方程组有解则共线且可以解参数出来,否则方程组无解。Top

5 楼HUNTON(追求完美)回复于 2006-03-14 08:42:02 得分 2

在不重合的情况下,算两个方向向量比较一下看是不是同一个方向的就可以了吧Top

相关问题

  • 这个判断空间三点共线的算法对么?
  • 2D空间中的视线遮挡判断
  • 在线等 = 判断网站空间里某文件存在
  • 三维空间 如何判断两个矩形有公共部分?
  • 一个简单的三点共线判断问题
  • 初学者求助:如何在DATAGIRD空间中根据数据库里面某个字段判断显示内容(在线等待)
  • 空间平面判断的数学算法问题
  • 在pb中如何判断一个磁盘所剩的空间?
  • 显示文档时,如何判断符号所占的空间?
  • 如何判断表空间,用户是否存在

关键词

  • 判断
  • 直线
  • 线
  • 方法
  • 到直线的距离
  • 问题

得分解答快速导航

  • 帖主:qmj_xk
  • rockersz
  • happy__888
  • sboom
  • HUNTON

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo