// 计算两点之间的距离
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;
}
分享到:
相关推荐
### 计算两点间距离、点与线段距离及三个点的夹角 #### 一、计算两点间的距离 在给定的代码片段中,计算两点间距离主要应用于GPS坐标系统中的经度和纬度计算。该算法采用了球面三角学原理来计算地球上任意两点之间...
在本篇文章中,我们将深入探讨如何使用C#编程语言实现空间点到空间直线距离的计算。根据提供的代码片段,我们可以看到这是一个具体的实现案例,通过理解这段代码,可以更好地掌握相关数学原理及其在计算机编程中的...
本主题将深入探讨如何在Canvas上绘制线段,并计算鼠标点击点到该线段的距离,这是图形用户界面开发中的一个重要概念,特别是在实现交互式绘图工具时。我们将使用向量法来解决这个问题,向量法是一种利用向量的性质来...
在本文中,我们将深入探讨如何使用C#编程语言来实现一个可视化程序,该程序能够绘制两条线段并计算它们之间的最远距离与最近距离。...通过这个项目,开发者可以提升自己的编程技巧,同时理解线段距离计算的几何原理。
4. **处理交点**:计算线段与视口边界的交点时,可以利用线性代数知识,例如点线距离公式、向量叉乘等。 在C#中实现这个算法,你需要定义一个结构来存储端点坐标和编码,然后编写函数来执行上述步骤。同时,为了...
1. **点到线段的距离**:计算一个点到线段的最短距离,需要知道线段的两个端点坐标和点的坐标。可以使用点到直线的距离公式,然后考虑线段的边界条件,确保距离是在线段上的最短部分。 2. **直线方程**:线段可以用...
直线处理涉及多种操作,包括线段相交检测、线段延长、计算点到直线的距离、直线拟合以及直线的角度旋转。这些方法在自动驾驶、机器人导航、CAD设计、图像分析等多个领域有广泛应用。下面将详细阐述这些知识点: 1. ...
计算点到线段的最短距离是GIS空间分析中的基本问题。这个问题涉及到空间几何学中的距离公式和最值问题。一般而言,通过构造垂线,计算垂足到点的距离即为所求最短距离。 7. 栅格数据的压缩 栅格数据压缩用于减小...
1. **判断线段是否与圆相交**:计算线段两端点到圆心的距离,如果两者都大于或等于半径,则无交点;如果两者都小于半径,则线段完全在圆内,有2个交点;如果一端点在圆内另一端点在圆外,则有1个交点。 2. **计算...
本项目源码着重展示了如何利用C#在Unity3D中实现实时的两点间画线以及计算距离的功能。这对于游戏中的路径规划、碰撞检测、导航系统等都有着重要的应用。 首先,我们来看“绘制线段”这一知识点。在Unity3D中,我们...
在计算机图形学中,线段的绘制和...综上所述,这个项目涉及到Qt的图形绘制,线段的数学性质,以及与用户交互的界面设计。通过理解和实现这些知识点,可以创建一个能够动态绘制线段、计算垂线并找到交点的可视化应用。
总之,C#中的`GetProjectivePoint`函数通过解析几何和代数方法,可以高效地计算出给定点到直线的投影点坐标。这种方法在处理图形、游戏开发、物理模拟等领域非常实用,帮助开发者精确地定位和分析几何对象的位置关系...
C++6.0编写的三维空间线段与线段的距离的小程序
这样,你就可以在窗体上看到从P1到P2的线段及其三等分点M1和M2了。如果你有多个线段需要处理,只需要对每个线段重复上述过程即可。 以上就是关于“获得线段的三等分点”这一知识点的详细说明,包括了理论背景、计算...
4. 点到线段所在直线的距离 4 5. 点到折线集的最近距离 4 6. 判断圆是否在多边形内 5 7. 求矢量夹角余弦 5 8. 求线段之间的夹角 5 9. 判断线段是否相交 6 10.判断线段是否相交但不交在端点处 6 11.求线段所在直线的...
2. **计算最大偏差**:遍历线段之间的所有点,计算每个点到线段的垂直距离,找出最大偏差点。 3. **判断保留条件**:如果最大偏差点与线段的距离小于预设的阈值,则认为这条线段已经足够近似原始曲线,可以将线段两...
1. 两点之间的距离:检查线自相交的基础是计算两个线段端点之间的距离。如果两个线段的任意一对端点之间的距离小于它们的长度之和,可能存在相交。 2. 判断线段交叉:可以使用向量叉乘的方法来判断两条线段是否相交...
中点算法的核心思想是将一条线段分割成无数个极小的线段,然后逐点绘制,从而形成完整的线段图像。 首先,我们来理解一下“任意斜率”的概念。在二维坐标系中,一条直线可以用点斜式y = mx + b来表示,其中m是斜率...
在IT领域,特别是地理信息系统(GIS)开发中,空间查询是一项关键功能,它涉及到对地图对象如点、线和面的交互与分析。本主题主要围绕"AE C# 空间查询(基于点,线,面)"展开,这是一种使用C#编程语言在ArcGIS ...
如果两点之间的线段不显著影响整体形状,那么可以考虑移除其中的一个点。这个过程会递归地进行,直到达到预设的点数阈值或精度标准。 具体到这个名为"PolygonSimplified"的源代码文件,可能包含了以下内容: 1. 类...