C#直线和直线的交点和距离
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#直线和直线的交点和距离相关推荐
- 直线与直线、直线与圆、直线与矩形的交点
求直线与直线.直线与圆.直线与矩形的交点 直线与直线的交点:a1x + b1x + c1x = 0 与 a2x + b2x + c2x = 0的交点坐标可直接根据公式x = (b1c2 - b2c1) ...
- 计算三维空间中直线和三角形的交点
计算三维空间中直线和三角形的交点 前言 一.计算平面方程 1.1 平面不过原点 1.2 平面过原点 1.3 平面过 zzz 轴 1.4 平面为 yOzyOzyOz 平面 二.计算直线方程 三.计算交点 ...
- 3dmath 直线与圆锥的交点(无底面的圆锥)
里面大部分计算 与圆柱的交点类似,可以看下圆柱交点的推导过程: https://mp.csdn.net/postedit/92795146 点到直线的距离参考: https://mp.csdn.net ...
- 3dmath 直线于圆柱的交点(无限长圆柱)
首先需要掌握,直线与直线的距离点的求解知识,可以查看: https://blog.csdn.net/qq_35267906/article/details/92795092 圆柱的表示方法是,圆柱中心 ...
- Revit求直线与平面的交点
直线与平面的交点有两种情况,交点在平面内或平面外,计算出交点后需确定此交点是否在已知平面内. 代码如下: /// <summary> /// 计算直线与平面的交点 /// </sum ...
- 求解直线与平面的交点
求解直线与平面的交点 微信公众号:幼儿园的学霸 目录 文章目录 求解直线与平面的交点 目录 前言 数学模型推导 编程实现 参考资料 前言 直线与平面的交点求解相关的内容在网上已经有很多资料进行介绍,目 ...
- matlab过圆心的直线,iOS计算过圆心直线与圆的交点
主要计算公式: 直线的一般方程 y = kx + b; 圆的一般方程 x^2 + y^2 + Dx + Ey + F = 0; 圆的基本系数关系 r = (根号(D^2 ...
- 直线和直线,直线和圆,直线和矩形的交点
直线和圆的交点公式 y=kx+b (x+c)² + (y+d)² = r² 的形式 转换成 ax+by+c=0 以(x, y)为圆心,r 为半径的形式 c++ // ax+by+c=0 // (x, ...
- Unity求一条直线与平面的交点
这个是面试官经常考的一个问题,我们先把它变成一个数学问题. 已知一个平面上的一点P0和法向量n,一条直线上的点L0和方向L,求该直线与该平面的交点P 如下图 首先我们分析一下我们知道平面和直线的法向量 ...
最新文章
- 阅读笔记 CCL: Cross-modal Correlation Learning with Multi-grained Fusion by Hierarchical Network
- mysql 主从复制 和基于gtid的mysql主从复制
- 【React、Vue 、 Angular 共分天下,2018首将会是谁?】
- hdfs namenode -format 初始化创建不了目录的问题
- 循环发ajax请求,在循环中发送jquery ajax请求
- Python处理csv文件
- php自动裁剪黑边,视频画面裁剪怎么将视频四周的黑边去除?
- orm2 中文文档 4.3 extendsTo(一对一关系)
- android 使用注解
- mui点击添加类名_Mui使用jquery并且使用点击跳转新窗口的实例
- 跨界营销策划案例合集(共13份)
- 2022最新RTMP+HTTP直播地址汇总(亲测可用)
- js indexOf()用法
- 自定义vbs脚本开机启动程序
- mac创建.开头的文件夹
- 手动下载VMware Tolls.ISO
- (一) Vue在创建的时候 入口文件 及相关的路由配置(及子路由配置)
- 使用CMAKE和交叉编译工具链
- 软件测试工程师的发展道路
- 系统启动之——grub4dos篇
热门文章
- 南京航空航天大学计算机学院保研,南京航空航天大学2020届保研率17%,主要保研本校、国科大、华五...
- 创业赢利模式之七产品金字塔模式
- 刷单删差评产业链:买家打差评后 姓名电话被曝光
- jQuery UI组件库Kendo UI使用技巧小分享
- LaTeX模板:实验报告封面样式
- Akamai阿卡迈_abck逆向sensor_data(二)
- php arm 转换mp3,PHP 将微信录音arm格式文件转mp3格式
- Spring使用三级缓存解决循环依赖?终于完全弄明白了
- Javascript加密,JS混淆加密,地表最新,最强加密方法保护您的代码
- linux 国产化 gtk图形界面开发 go和c++环境搭建