ACM常用算法(19)

发布时间:2021-06-06

ACM常考算法

(MIN(p1.x,p2.x)<p4.x&&p3.x<MAX(p1.x,p2.x)&&MIN(p1.y,p2.y)<p3.y<MAX(p1.y,p2.y))) ;else return 0;

//跨立试验

tp1.x=p1.x-p3.x; tp1.y=p1.y-p3.y; tp2.x=p4.x-p3.x; tp2.y=p4.y-p3.y; tp3.x=p2.x-p3.x; tp3.y=p2.y-p3.y;

if ((tp1.x*tp2.y-tp1.y*tp2.x)*(tp2.x*tp3.y-tp2.y*tp3.x)>=0)return 1;else return 0; }

8.判断线段与直线是否相交

语法:result=lineintersect(Point p1,Point p2,Point p3,Point p4); 参数:

p1、p2: 线段的两个端点 p3、p4: 直线上的两个点

返回

0:线段直线不相交;1:线段和直线相交 值: 注意: 源程序:

如线段在直线上,返回 1

typedef struct { double x,y; } Point;

int lineintersect(Point p1,Point p2,Point p3,Point p4) {

Point tp1,tp2,tp3; tp1.x=p1.x-p3.x; tp1.y=p1.y-p3.y; tp2.x=p4.x-p3.x; tp2.y=p4.y-p3.y; tp3.x=p2.x-p3.x; tp3.y=p2.y-p3.y;

if ((tp1.x*tp2.y-tp1.y*tp2.x)*(tp2.x*tp3.y-tp2.y*tp3.x)>=0)return 1;else return 0; }

9.点到线段最短距离

语法:result=mindistance(Point p1,Point p2,Point q); 参数:

p1、

线段的两个端点 p2:

ACM常用算法(19).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219