📄 l.c
字号:
#include <graphics.h>
#include <stdio.h>
#include <dos.h>
#include <math.h>
typedef enum bool
{ false=0,
true=1
}Bool;
Bool ClipT();
void LB_Line( x1,y1,x2,y2,XL,XR,YB,YT)
float x1,y1,x2,y2,XL,XR,YB,YT;
{
float dx,dy,u1,u2;
u1=0;u2=1;
dx=x2-x1;
dy=y2-y1;
if(ClipT(-dx,x1-XL,&u1,&u2))
if(ClipT(dx,XR-x1,&u1,&u2))
if(ClipT(-dy,y1-YB,&u1,&u2))
if(ClipT(dy,YT-y1,&u1,&u2))
{ setcolor(4);
line(x1+u1*dx,y1+u1*dy,x1+u2*dx,y1+u2*dy);
return;
}
}
Bool ClipT(p,q,u1,u2)
float p,q,*u1,*u2;
{
float r;
if(p<0)
{
r=q/p;
if(r>*u2) return false;
else if(r>*u1)
{
*u1=r;
return true;
}
}
else if(p>0)
{
r=p/q;
if(r<*u1) return false;
else if(r<*u2)
{
*u2=r;
return true;
}
}
else if(q<0) return false;
return true;
}
main()
{
int gdriver=DETECT,gmode;
initgraph(&gdriver,&gmode,"c:\turboc2"); /*EGAVGA.BGI文件 */
LB_Line(20.0,30.0,200.0,400.0,45.0,400.0,15.0,200.0);
getch();
closegraph();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -