C#数学几何运算
通过基础程序实现基本的平面几何运算
未来超低端科技研究所
机器视觉工程师
展开
-
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原创 2022-04-19 10:15:30 · 1207 阅读 · 0 评论 -
两点获取直线参数
已知平面两点,求直线方程,本代码是C#语言,其他编程语言也可参考1.求直线方程 y = kx + b 中的 k 与 b 两个参数,若 k 不存在会出现异常 //两点获取直线参数 //k为斜率,kf为法线斜率public static void GenLineEqu(double x1, double y1, double x2, double y2, out double k, out double kf, out double b) { double dx = x1 - x2;原创 2022-04-18 14:19:20 · 1055 阅读 · 0 评论 -
几何图形求解方法目录
目录解一元二次方程点到点的距离点到线的距离判断点是否在线上两点得出直线方程求解两个直线的交点和距离解直线和圆的交点解圆和圆的交点原创 2022-04-19 15:40:59 · 172 阅读 · 0 评论 -
求解直线和圆的交点
C#求结直线ax+by+c=0与圆的交点程序 //直线和圆的交点 public static void InterC2L(double centerR, double centerC, double R, double a, double b, double c, out List<double> Rows, out List<double> Columns) { Rows = new List<double>(); //交点1 Co原创 2022-04-19 09:34:09 · 1306 阅读 · 0 评论 -
C#求解圆和圆的交点
本方法的步骤是:1.判断两个圆是否相交2.已知两圆的交点连线L1与两圆心连线L2是垂直关系,所以可以得到两圆的交点连线(L1)的斜率3.通过几何关系求出L1和L2的交点,从而得出L1方程4.求直线与圆的交点程序中涉及到的其他静态类方法可以在我的其他博文中找到public static bool InterC2C(double centerX1, double centerY1, double R1, double centerX2, double centerY2, double R2, out原创 2022-04-19 15:20:55 · 1094 阅读 · 0 评论 -
线段和圆的交点程序
C#实现结算线段和圆的交点本代码是为了解决图像处理中的问题做的,所以x,y坐标这里使用的是Row和Column代码中涉及到的其他静态方法,均可在我的其他博文中找到//线段和圆的交点 public static void InterC2S(double centerR, double centerC, double R, List<double> Row, List<double> Column, out List<double> Rows, out原创 2022-04-19 09:45:33 · 1300 阅读 · 0 评论 -
点到点的距离、点到直线的距离、点是否在直线上
C#代码实现点到点、点到直线的距离、点是否在直线上1.点到点的距离public static double DistanceP2P(double x1, double y1, double x2, double y2) { double distance = 0; double subx = x1 - x2; double suby = y1 - y2; distance = Math.Sqrt(subx * subx + suby * suby);原创 2022-04-19 09:57:43 · 828 阅读 · 0 评论 -
解一元二次方程
C# 实现求解一元二次方程方法 //解一元二次方程方程 public static void GenEqu2(double a, double b, double c, out double res1, out double res2) { double b2 = b * b; double ac4 = 4 * a * c; double M = (float)Math.Sqrt(b2 - ac4); res1 = (-b + M) / (2 * a);原创 2022-04-18 14:37:41 · 212 阅读 · 0 评论