double msDistancePointToSegment(pointObj *p, pointObj *a, pointObj *b)
{//计算点到线段(a,b)的距离
double l; /* length of line ab */
double r,s;
l = msDistancePointToPoint(a,b);
if(l == 0.0) /* a = b */
return( msDistancePointToPoint(a,p));
r = ((a->y - p->y)*(a->y - b->y) - (a->x - p->x)*(b->x - a->x))/(l*l);
if(r > 1) /* perpendicular projection of P is on the forward extention of AB */
return(MS_MIN(msDistancePointToPoint(p, b),msDistancePointToPoint(p, a)));
if(r < 0) /* perpendicular projection of P is on the backward extention of AB */
return(MS_MIN(msDistancePointToPoint(p, b),msDistancePointToPoint(p, a)));
s = ((a->y - p->y)*(b->x - a->x) - (a->x - p->x)*(b->y - a->y))/(l*l);
return(fabs(s*l));
}
double msDistancePointToPoint(pointObj *a, pointObj *b)
{
double d;
double dx, dy;
dx = a->x - b->x;
dy = a->y - b->y;
d = sqrt(dx*dx + dy*dy);
return(d);
}
分享到:
相关推荐
直线的生成算法(三种) *1.--------紫色线条:DDA算法--------- *2.--------红色线条:逐点比较算法--------- *3.--------绿色线条:Bresenham算法--------- 【在压缩包里附有 .exe 文件,可直接双击运行,看结果。...
文中介绍了三种求点到直线距离的方法,其中详细介绍了用矢量算法求点到直线的距离算法,该算法在效率上从根本上优于其他两种算法。
应用c++ MFC实现梁友栋-Barsky直线裁剪算法,配套清华大学出版社的《计算机图形学基础教程》。
MATLAB-遗传算法-多车场-开放式-带时间窗-多商品-VRP问题,解压后直接运行。MATLAB-遗传算法-多车场-开放式-带时间窗-多商品-VRP问题,解压后直接运行。
C++语言实现一些基本算法(两点距离、点是否在直线上、点与直线的关系、两直线的夹角、两直线的交点、两个举行的重合面积等等)
旅行商问题-A*算法-java
分享自己撸的一个halcon检测直线的算法,该方法可控性强,稳定,准确
人工智能导论-代价一致算法-A*算法
LSD直线检测算法程序,比HOUGH算法效果更好。
实现Bresenham算法画任意斜率直线实现Bresenham
RRT、RRT* 和 RRT*FN 算法的 MATLAB 实现。 什么是 RRT、RRT* 和 RRT*FN RRT(Rapidly-Exploring Random Tree)是一种基于采样的算法,用于解决路径规划问题。如果 RRT 的时间趋于无穷大,RRT 提供了可行的解决方案...
2)调用画点的函数,分别用DDA、中点Bresenham算法和改进Bresenham算法绘制直线和中点算法绘制直线、用不同的算法绘制圆和椭圆 ,并各自比较算法精度与效率的差别 。 3)实现二维图形的变换。(包括平移,放缩,...
%%感知机学习算法---原始形式 %%算法步骤: % 1.选取初值w0,b0.确定学习率(属于(0,1]) % 2.在训练集中选取数据(xi,yi) % 3.如果yi(w*xi+b),更新w,b % w=w+学习率*yi*xi % b=b+学习率*yi % 4.转至(2),直到...
* 本程序按照《人工智能导论》一书所介绍的A*算法求解传教士与野人问题。 * * * * 注意: 该程序尽可能用与算法一致的思路实现算法, 力求简单明了, 注重算法的清晰性,* * 而没有考虑算法的效率问题。
注意:直线段两端点要自动取整到模拟的像素中心位置 4.进行直线段扫描转换,通过点击鼠标右键调用方式或者菜单调用的方式执行。计算完成后,将扫描转换结果,在模拟的像素矩阵中,使用圆形显示出来。 通过这个...
如果你有一些数据点,他们是离散的。你要从中找到这些点的规律,就做一条直线,穿过尽可能多的点,使得这些数据和直线上所的估计的点的方差最小。找到的这条直线就是拟合直线。它代表了数据之间的线性规律
梁友栋-Barsky直线裁剪算法 计算机图形学 孔令德 案例源码
推荐算法**内容概要**: 本文详细介绍了推荐算法的基本概念和常用算法,包括协同过滤、内容推荐、深度学习推荐和混合推荐。文章还讨论了个性化推荐、实时推荐、跨平台推荐、冷启动问题、算法优化、算法解释性、长期...
A算法和A*算法详细的讲解 并且有实例的解释 大家可以借鉴
bresenham算法画直线#include <GL/glut.h>// Header File For The GLUT Library #include <GL/gl.h> // Header File For The OpenGL32 Library #include <GL/glu.h> // Header File For The GLu32 Library #include...