`

c# 点到线段距离

 
阅读更多
    // 计算两点之间的距离    
            private double lineSpace(double x1, double y1,double x2, double y2) {    
                double lineLength = 0;
                lineLength = Math.Sqrt((x1 - x2) * (x1 - x2) + (y1 - y2)*(y1 - y2));       
                    
                return lineLength;    
                  
            }  
               //点到线段距离  
            private double pointToLine(double x1, double y1,  double x2, double y2,  double x0, double y0)    
                 {    
                    double space = 0;    
                    double a, b, c;    
                    a = lineSpace(x1, y1, x2, y2);// 线段的长度    
                    b = lineSpace(x1, y1, x0, y0);// (x1,y1)到点的距离    
                    c = lineSpace(x2, y2, x0, y0);// (x2,y2)到点的距离    
                    if (c <= 0.000001 || b <= 0.000001) {    
                        space = 0;    
                        return space;    
                    }    
                    if (a <= 0.000001) {    
                        space = b;    
                        return space;    
                    }    
                    if (c * c >= a * a + b * b) {    
                        space = b;    
                        return space;    
                    }    
                    if (b * b >= a * a + c * c) {    
                        space = c;    
                        return space;    
                    }    
                     double p = (a + b + c) / 2;// 半周长    
                     double s = Math.Sqrt(p * (p - a) * (p - b) * (p - c));// 海伦公式求面积    
                    space = 2 * s / a;// 返回点到线的距离(利用三角形面积公式求高)    
                    return space;    
                }   


0
3
分享到:
评论
1 楼 freefishz 2012-07-11  
命名习惯有待改进

相关推荐

    计算两点间距离,点与线段距离,三个点的夹角

    ### 计算两点间距离、点与线段距离及三个点的夹角 #### 一、计算两点间的距离 在给定的代码片段中,计算两点间距离主要应用于GPS坐标系统中的经度和纬度计算。该算法采用了球面三角学原理来计算地球上任意两点之间...

    空间点都空间直线的距离C#程序

    在本篇文章中,我们将深入探讨如何使用C#编程语言实现空间点到空间直线距离的计算。根据提供的代码片段,我们可以看到这是一个具体的实现案例,通过理解这段代码,可以更好地掌握相关数学原理及其在计算机编程中的...

    WPF演示 点到线段距离

    本主题将深入探讨如何在Canvas上绘制线段,并计算鼠标点击点到该线段的距离,这是图形用户界面开发中的一个重要概念,特别是在实现交互式绘图工具时。我们将使用向量法来解决这个问题,向量法是一种利用向量的性质来...

    C#两线段求距-可视化操作

    在本文中,我们将深入探讨如何使用C#编程语言来实现一个可视化程序,该程序能够绘制两条线段并计算它们之间的最远距离与最近距离。...通过这个项目,开发者可以提升自己的编程技巧,同时理解线段距离计算的几何原理。

    C#图形学-线段裁剪

    4. **处理交点**:计算线段与视口边界的交点时,可以利用线性代数知识,例如点线距离公式、向量叉乘等。 在C#中实现这个算法,你需要定义一个结构来存储端点坐标和编码,然后编写函数来执行上述步骤。同时,为了...

    多点到多线距离

    1. **点到线段的距离**:计算一个点到线段的最短距离,需要知道线段的两个端点坐标和点的坐标。可以使用点到直线的距离公式,然后考虑线段的边界条件,确保距离是在线段上的最短部分。 2. **直线方程**:线段可以用...

    一些简单的直线处理,如线段相交、线段延长、点到直线的距离、直线拟合、角度旋转的等方法

    直线处理涉及多种操作,包括线段相交检测、线段延长、计算点到直线的距离、直线拟合以及直线的角度旋转。这些方法在自动驾驶、机器人导航、CAD设计、图像分析等多个领域有广泛应用。下面将详细阐述这些知识点: 1. ...

    地理信息系统算法题——C#

    计算点到线段的最短距离是GIS空间分析中的基本问题。这个问题涉及到空间几何学中的距离公式和最值问题。一般而言,通过构造垂线,计算垂足到点的距离即为所求最短距离。 7. 栅格数据的压缩 栅格数据压缩用于减小...

    求线段与圆弧的交点实现源码

    1. **判断线段是否与圆相交**:计算线段两端点到圆心的距离,如果两者都大于或等于半径,则无交点;如果两者都小于半径,则线段完全在圆内,有2个交点;如果一端点在圆内另一端点在圆外,则有1个交点。 2. **计算...

    Unity3d C# 实现两点的画线和测距效果功能源码

    本项目源码着重展示了如何利用C#在Unity3D中实现实时的两点间画线以及计算距离的功能。这对于游戏中的路径规划、碰撞检测、导航系统等都有着重要的应用。 首先,我们来看“绘制线段”这一知识点。在Unity3D中,我们...

    线段绘制,求出线段的垂线

    在计算机图形学中,线段的绘制和...综上所述,这个项目涉及到Qt的图形绘制,线段的数学性质,以及与用户交互的界面设计。通过理解和实现这些知识点,可以创建一个能够动态绘制线段、计算垂线并找到交点的可视化应用。

    c#求点到直线的投影点坐标

    总之,C#中的`GetProjectivePoint`函数通过解析几何和代数方法,可以高效地计算出给定点到直线的投影点坐标。这种方法在处理图形、游戏开发、物理模拟等领域非常实用,帮助开发者精确地定位和分析几何对象的位置关系...

    三维空间线段与线段的距离

    C++6.0编写的三维空间线段与线段的距离的小程序

    获得线段的三等分点

    这样,你就可以在窗体上看到从P1到P2的线段及其三等分点M1和M2了。如果你有多个线段需要处理,只需要对每个线段重复上述过程即可。 以上就是关于“获得线段的三等分点”这一知识点的详细说明,包括了理论背景、计算...

    关于二维的点、线、多边形、圆几何关系库 c

    4. 点到线段所在直线的距离 4 5. 点到折线集的最近距离 4 6. 判断圆是否在多边形内 5 7. 求矢量夹角余弦 5 8. 求线段之间的夹角 5 9. 判断线段是否相交 6 10.判断线段是否相交但不交在端点处 6 11.求线段所在直线的...

    CAD 基于C#.Net 检查线自相交

    1. 两点之间的距离:检查线自相交的基础是计算两个线段端点之间的距离。如果两个线段的任意一对端点之间的距离小于它们的长度之和,可能存在相交。 2. 判断线段交叉:可以使用向量叉乘的方法来判断两条线段是否相交...

    C#实现任意斜率中点算法

    中点算法的核心思想是将一条线段分割成无数个极小的线段,然后逐点绘制,从而形成完整的线段图像。 首先,我们来理解一下“任意斜率”的概念。在二维坐标系中,一条直线可以用点斜式y = mx + b来表示,其中m是斜率...

    AE C# 空间查询(基于点,线,面)

    在IT领域,特别是地理信息系统(GIS)开发中,空间查询是一项关键功能,它涉及到对地图对象如点、线和面的交互与分析。本主题主要围绕"AE C# 空间查询(基于点,线,面)"展开,这是一种使用C#编程语言在ArcGIS ...

    C#+ArcEngine面周边点抽稀源码

    如果两点之间的线段不显著影响整体形状,那么可以考虑移除其中的一个点。这个过程会递归地进行,直到达到预设的点数阈值或精度标准。 具体到这个名为"PolygonSimplified"的源代码文件,可能包含了以下内容: 1. 类...

    Arcgis engine 批量绘制线段的中垂线

    这涉及到线段两端点的坐标差,通过计算`(y2 - y1) / (x2 - x1)`。如果斜率为零,说明线段水平,中垂线应沿Y轴对称;如果斜率不为零,那么中垂线的斜率为原线斜率的负倒数。 确定了中垂线的方向后,我们可以在中点...

Global site tag (gtag.js) - Google Analytics