ACM常用算法(21)

发布时间:2021-06-06

ACM常考算法

typedef struct { double x,y; } Point;

int linecorss(Point p1,Point p2,Point p3,Point p4,Point *p) {

double k; //同一直线

if ((p4.x-p3.x)*(p1.y-p3.y)-(p4.y-p3.y)*(p1.x-p3.x)==0&&

(p2.x-p1.x)*(p1.y-p3.y)-(p2.y-p1.y)*(p1.x-p3.x)==0) return 2; //平行,不同一直线

if ((p4.y-p3.y)*(p2.x-p1.x)-(p4.x-p3.x)*(p2.y-p1.y)==0) return 0;

k=((p4.x-p3.x)*(p1.y-p3.y)-(p4.y-p3.y)*(p1.x-p3.x))/((p4.y-p3.y)*(p2.x-p1.x)-(p4.x-p3.x)*(p2.y-p1.y));

//k1=((p2.x-p1.x)*(p1.y-p3.y)-(p2.y-p1.y)*(p1.x-p3.x))/((p4.y-p3.y)*(p2.x-p1.x)-(p4.x-p3.x)*(p2.y-p1.y)); (*p).x=p1.x+k*(p2.x-p1.x); (*p).y=p1.y+k*(p2.y-p1.y); return 1;//有交点}

11.判断一个封闭图形是凹集还是凸集

语法:result=convex(Point *p,int n); 参数:

*p: 封闭曲线顶点数组 n: 封闭曲线顶点个数

返回

1:凸集;-1:凹集;0:曲线不符合要求无法计算 值: 注意: 源程序:

默认曲线为简单曲线:无交叉、无圈

typedef struct { double x,y; } Point;

int convex(Point *p,int n) {

int i,j,k; int flag = 0;

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

精彩图片

热门精选

大家正在看

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

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

支付方式:

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

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