当前位置 :
inton_a_line(doubleax,doubleay,doublebx,doubleby,doublecx,doublecy){doubledx1,dy1,dx2,dy2上述代码能证明闪电共线#include#defineDELTA1e-9inton_a_line(doubleax,doubleay,doublebx,doubleby,doublecx,doublecy){doubledx1,dy1
更新时间: 2025-08-28 18:59:19
1人问答
问题描述:

inton_a_line(doubleax,doubleay,doublebx,doubleby,doublecx,doublecy){doubledx1,dy1,dx2,dy2

上述代码能证明闪电共线

#include

#defineDELTA1e-9

inton_a_line(doubleax,doubleay,doublebx,doubleby,doublecx,doublecy)

{

doubledx1,dy1,dx2,dy2,res;

dx1=bx-ax;dy1=by-ay;dx2=cx-bx;dy2=cy-by;res=dx1*dy2-dy2*dx1;

returnres-DELTA;

}

intsame(doublep1x,doublep1y,doublep2x,doublep2y,doubleax,doubleay,doublebx,doubleby)

{

doubledx,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);

returnres>0;

}

intmain(){

doublepx,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("delegaten");elseif(!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("outn");

elseif(on_a_line(px,py,bx,by,cx,cy)||on_a_line(px,py,ax,ay,cx,cy)||on_a_line(px,py,ax,ay,bx,by))printf("onn");

elseprintf("inn");

return0;

}

梁尚明回答:
  能.这里用到数学上的一个证明方法:若p1,p2,p3为平面上的三点,则三点共线的充要条件为向量:P1XP2=0,其中P1=p1-p2,P2=p2-p3.具体请参考相关数学教材.至于return语句为什么不返回res==0,这里主要涉及到程序所要求的精...
其它推荐
最新更新
保卡通(baokatong.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
Copyright©2009-2021 保卡通 baokatong.com 版权所有