int on_a_line(double ax,double ay,double bx,double by,double cx,double cy) { double dx1,dy1,dx2,dy2

int on_a_line(double ax,double ay,double bx,double by,double cx,double cy) { double dx1,dy1,dx2,dy2

题目
int on_a_line(double ax,double ay,double bx,double by,double cx,double cy) { double dx1,dy1,dx2,dy2
上述代码能证明 闪电共线
#include
#define DELTA 1e-9
int on_a_line(double ax,double ay,double bx,double by,double cx,double cy)
{
double dx1,dy1,dx2,dy2,res;
dx1=bx-ax;dy1=by-ay;dx2=cx-bx;dy2=cy-by;res=dx1*dy2-dy2*dx1;
return res-DELTA;
}
int same(double p1x,double p1y,double p2x,double p2y,double ax,double ay,double bx,double by)
{
double dx,dy,dx1,dy1,dx2,dy2,res;
dx=bx-ax;dy=by-ay;dx1=p1x-ax;dy1=p1y-ay;dx2=p2x-bx;dy2=p2y-by;res=(dx*dy1-dy*dx1)*(dx*dy2-dy*dx2);
return res>0;
}
int main(){
double px,py,ax,ay,bx,by,cx,cy;
scanf("%lf%lf%lf%lf%lf%lf%lf%lf",&px,&py,&ax,&ay,&bx,&by,&cx,&cy);
if(on_a_line(ax,ay,bx,by,cx,cy)) printf("delegate "); else if(!same(px,py,ax,ay,bx,by,cx,cy)||!same(px,py,bx,by,ax,ay,cx,cy)||!same(px,py,cx,cy,ax,ay,bx,by)) printf("out ");
else if(on_a_line(px,py,bx,by,cx,cy)||on_a_line(px,py,ax,ay,c
答案
能.这里用到数学上的一个证明方法:若p1,p2,p3为平面上的三点,则三点共线的充要条件为向量:P1XP2=0,其中P1=p1-p2,P2=p2-p3.具体请参考相关数学教材.至于return语句为什么不返回res==0,这里主要涉及到程序所要求的精...
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
最新试题
热门考点

超级试练试题库

© 2017-2019 超级试练试题库,All Rights Reserved.