📄 liangyoudong.cpp
字号:
#include<iostream.h>
#include<stdlib.h>
#include<stdio.h>
#include<math.h>
struct rectangle{float xmin;float xmax;float ymin;float ymax;}rect;
int clipt(float q,float d,float *t0,float *t1)
{
float r;
if(q<0)
{
r=d/q;
if(r>*t1)
return 0;
else if(r>*t0)
{*t0=r;
return 1 ;
}
}
else if(q>0)
{ r=d/q;
if(r<*t0)
return 0;
else if(r<*t1)
{*t1=r;
return 1;
}
}
else if(d<0)
return 0;
return 1;
}
void liang(float x0,float y0,float x1,float y1,rectangle *rect)
{ float deltax=x1-x0,deltay,t0,t1;
t0=0;
t1=1;
if(clipt(-deltax,x0-rect->xmin,&t0,&t1))
if(clipt(deltax,rect->xmax-x0,&t0,&t1))
{ deltay=y1-y0;
if(clipt(-deltay,y0-rect->ymin,&t0,&t1))
if(clipt(deltay,rect->ymax-y0,&t0,&t1))
{cout<<"ok"<<endl;
line((int)(x0+t0*deltax),(int)(y0+t0*deltay),(int)(x0+t1*deltax),(int)(y0+t1*deltay));//
return;
}
}
cout<<"p0p1 can't be seen"<<endl;
}
/*int clipt(float q,float d,float *t0,float *t1);
void liang(float,float,float,float ,rectangle*);*/
void main()
{ float x0,y0,x1,y1;
cout<<"請輸入 x0,x1,y0,y1"<<endl;
cin>>x0>>x1>>y0>>y1;
cout<<"請輸入xmin,xmax,ymin,ymax"<<endl;
cin>>rect.xmin>>rect.xmax>>rect.ymin>>rect.ymax;
liang(x0,y0,x1,y1,&rect);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -