没有合适的资源?快使用搜索试试~ 我知道了~
计算机几何算法库(编程常用)
5星 · 超过95%的资源 需积分: 9 23 下载量 65 浏览量
2009-04-22
09:57:02
上传
评论
收藏 15KB TXT 举报
温馨提示
试读
13页
计算机几何算法库是我们常用到的资源哦, 尽管下来收藏
资源推荐
资源详情
资源评论
const double INF=1e100;
const double ZERO=1e-6;
const double PI=2*asin(1.0);
struct XYpoint{ //(x,y)
double x;
double y;
};
struct XYline{ // Ax+By+C=0;
double A;
double B;
double C;
};
struct XYsegment{
XYpoint a,b;
};
struct XYround{ // 圆
XYpoint center;
double r;
};
inline double min(double a,double b)
{
return a<b?a:b;
}
inline double max(double a,double b)
{
const double ZERO=1e-6;
const double PI=2*asin(1.0);
struct XYpoint{ //(x,y)
double x;
double y;
};
struct XYline{ // Ax+By+C=0;
double A;
double B;
double C;
};
struct XYsegment{
XYpoint a,b;
};
struct XYround{ // 圆
XYpoint center;
double r;
};
inline double min(double a,double b)
{
return a<b?a:b;
}
inline double max(double a,double b)
{
return a>b?a:b;
}
/********************************************/
/* 两点确定一条直线 */
/********************************************/
XYline makeLine(double x1,double y1,double x2,double y2)
{
XYline line;
line.A=(y2-y1);
line.B=(x1-x2);
line.C=y1*(x2-x1)+x1*(y1-y2);
return line;
}
/********************************************/
/* 两点间距离 */
/********************************************/
inline double dis_PP(double x1,double y1,double x2,double y2)
{
return sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) );
}
/********************************************/
/* 点直线距离 */
/********************************************/
double dis_PL(double x,double y,XYline line)
{
return fabs(line.A*x + line.B*y + line.C) / sqrt(line.A*line.A + line.B*line.B);
}
/********************************************/
/* 两点确定一条直线 */
/********************************************/
XYline makeLine(double x1,double y1,double x2,double y2)
{
XYline line;
line.A=(y2-y1);
line.B=(x1-x2);
line.C=y1*(x2-x1)+x1*(y1-y2);
return line;
}
/********************************************/
/* 两点间距离 */
/********************************************/
inline double dis_PP(double x1,double y1,double x2,double y2)
{
return sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) );
}
/********************************************/
/* 点直线距离 */
/********************************************/
double dis_PL(double x,double y,XYline line)
{
return fabs(line.A*x + line.B*y + line.C) / sqrt(line.A*line.A + line.B*line.B);
剩余12页未读,继续阅读
资源评论
- leekey20082015-03-04哈哈,不错的代码。
NewVitamin
- 粉丝: 21
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功