C#实现直线和直线的交点和距离

由于直线程序计算中可能会出现误差,这里的 a==b均用 a-b<0.001 代替

  public static double InterL2L(double a1, double b1, double c1, double a2, double b2, double c2, out double x, out double y){double distance = 0;if (Math.Abs(a1 - a2) < 0.001 && Math.Abs(b1 - b2) < 0.001) //平行线{x = 0;y = 0;   distance = Math.Abs(c1 - c2) / Math.Sqrt(a1 * a1 + b1 * b1);}else if (b1 == 0 && b2 == 0) //两条垂线{x = 0;y = 0;distance = Math.Abs((-c1 / a1) + (c2 / a2));}else if (a1 == 0 && a2 == 0) //两条水平线{x = 0;y = 0;distance = Math.Abs((-b1 / a1) + (b2 / a2));}else if (a1 == 0 && b1 == 0) //线1不存在{x = 0;y = 0;}else if (a2 == 0 && b2 == 0)//线2不存在{x = 0;y = 0;}else if (a1 == 0 && b2 == 0)//线1水平,线2垂直{x = -c2 / a2;y = -c1 / b1;}else if (a2 == 0 && b1 == 0)//线2水平,线1垂直{x = -c1 / a1;y = -c2 / b2;}else if (a1 == 0)//线1水平{y = -c1 / b1;x = -(b2 * y + c2) / a2;}else if (a2 == 0)//线2水平{y = -c2 / b2;x = -(b1 * y + c1) / a1;}else if (b1 == 0) //线1垂直{x = -c1 / a1;y = -(a2 * x + c2) / b2;}else if (b2 == 0)//线2垂直{x = -c2 / a2;y = -(a1 * x + c1) / b1;}else{//double d1;//double e1;//double d2;//double e2;double b;double c;//d1 = b1 / a1;//e1 = c1 / a1;//d2 = b2 / a2;//e2 = c2 / a2;b = (b2 / a2) - (b1 / a1);c = (c2 / a2) - (c1 / a1);y = -c / b;x = -(b1 * y + c1) / a1;}return distance;}

C#直线和直线的交点和距离相关推荐

  1. 直线与直线、直线与圆、直线与矩形的交点

    求直线与直线.直线与圆.直线与矩形的交点 直线与直线的交点:a1x + b1x + c1x = 0 与 a2x + b2x + c2x = 0的交点坐标可直接根据公式x = (b1c2 - b2c1) ...

  2. 计算三维空间中直线和三角形的交点

    计算三维空间中直线和三角形的交点 前言 一.计算平面方程 1.1 平面不过原点 1.2 平面过原点 1.3 平面过 zzz 轴 1.4 平面为 yOzyOzyOz 平面 二.计算直线方程 三.计算交点 ...

  3. 3dmath 直线与圆锥的交点(无底面的圆锥)

    里面大部分计算 与圆柱的交点类似,可以看下圆柱交点的推导过程: https://mp.csdn.net/postedit/92795146 点到直线的距离参考: https://mp.csdn.net ...

  4. 3dmath 直线于圆柱的交点(无限长圆柱)

    首先需要掌握,直线与直线的距离点的求解知识,可以查看: https://blog.csdn.net/qq_35267906/article/details/92795092 圆柱的表示方法是,圆柱中心 ...

  5. Revit求直线与平面的交点

    直线与平面的交点有两种情况,交点在平面内或平面外,计算出交点后需确定此交点是否在已知平面内. 代码如下: /// <summary> /// 计算直线与平面的交点 /// </sum ...

  6. 求解直线与平面的交点

    求解直线与平面的交点 微信公众号:幼儿园的学霸 目录 文章目录 求解直线与平面的交点 目录 前言 数学模型推导 编程实现 参考资料 前言 直线与平面的交点求解相关的内容在网上已经有很多资料进行介绍,目 ...

  7. matlab过圆心的直线,iOS计算过圆心直线与圆的交点

    主要计算公式: 直线的一般方程      y = kx + b; 圆的一般方程        x^2 + y^2 + Dx + Ey + F = 0; 圆的基本系数关系     r = (根号(D^2 ...

  8. 直线和直线,直线和圆,直线和矩形的交点

    直线和圆的交点公式 y=kx+b (x+c)² + (y+d)² = r² 的形式 转换成 ax+by+c=0 以(x, y)为圆心,r 为半径的形式 c++ // ax+by+c=0 // (x, ...

  9. Unity求一条直线与平面的交点

    这个是面试官经常考的一个问题,我们先把它变成一个数学问题. 已知一个平面上的一点P0和法向量n,一条直线上的点L0和方向L,求该直线与该平面的交点P 如下图 首先我们分析一下我们知道平面和直线的法向量 ...

最新文章

  1. 阅读笔记 CCL: Cross-modal Correlation Learning with Multi-grained Fusion by Hierarchical Network
  2. mysql 主从复制 和基于gtid的mysql主从复制
  3. 【React、Vue 、 Angular 共分天下,2018首将会是谁?】
  4. hdfs namenode -format 初始化创建不了目录的问题
  5. 循环发ajax请求,在循环中发送jquery ajax请求
  6. Python处理csv文件
  7. php自动裁剪黑边,视频画面裁剪怎么将视频四周的黑边去除?
  8. orm2 中文文档 4.3 extendsTo(一对一关系)
  9. android 使用注解
  10. mui点击添加类名_Mui使用jquery并且使用点击跳转新窗口的实例
  11. 跨界营销策划案例合集(共13份)
  12. 2022最新RTMP+HTTP直播地址汇总(亲测可用)
  13. js indexOf()用法
  14. 自定义vbs脚本开机启动程序
  15. mac创建.开头的文件夹
  16. 手动下载VMware Tolls.ISO
  17. (一) Vue在创建的时候 入口文件 及相关的路由配置(及子路由配置)
  18. 使用CMAKE和交叉编译工具链
  19. 软件测试工程师的发展道路
  20. 系统启动之——grub4dos篇

热门文章

  1. 南京航空航天大学计算机学院保研,南京航空航天大学2020届保研率17%,主要保研本校、国科大、华五...
  2. 创业赢利模式之七产品金字塔模式
  3. 刷单删差评产业链:买家打差评后 姓名电话被曝光
  4. jQuery UI组件库Kendo UI使用技巧小分享
  5. LaTeX模板:实验报告封面样式
  6. Akamai阿卡迈_abck逆向sensor_data(二)
  7. php arm 转换mp3,PHP 将微信录音arm格式文件转mp3格式
  8. Spring使用三级缓存解决循环依赖?终于完全弄明白了
  9. Javascript加密,JS混淆加密,地表最新,最强加密方法保护您的代码
  10. linux 国产化 gtk图形界面开发 go和c++环境搭建