📄 dda.bak
字号:
#define ROUND(a)((int)(a+0.5))
#include<iostream.h>
#include<graphics.h>
#include<conio.h>
#include<dos.h>
#include<math.h>
//////////////mouse
int chk_mouse(void)
{
REGS r;
r.x.ax=0x0000;
int86(0x33,&r,&r);
return r.x.ax;
}
//mouse function
void show_mouse(void)
{
REGS r;
r.x.ax=0x0001;
int86(0x33,&r,&r);
}
//mouse function
void hide_mouse(void)
{
REGS r;
r.x.ax=0x0002;
int86(0x33,&r,&r);
}
//mouse function
void get_mouse(int *x1,int *y1)
{
REGS r;
r.x.ax=0x0003;
int86(0x33,&r,&r);
*x1=r.x.cx;
*y1=r.x.dx;
}
//mouse function
int mouse_pressed(int btn_no)
{
REGS r;
r.x.ax=0x0005;
r.x.bx=btn_no;
int86(0x33,&r,&r);
return r.x.bx;
}
//mouse function
int mouse_released(int btn_no)
{
REGS r;
r.x.ax=0x0006;
r.x.bx=btn_no;
int86(0x33,&r,&r);
return r.x.bx;
}
//////////////////////
void DDA(int xa,int ya,int xb,int yb)
{
int dx=abs(xa-xb),dy=abs(ya-yb),steps,k;
float xinc,yinc,x=xa,y=ya;
if(dx>dy) steps=dx;
else steps=dy;
xinc=dx/(float)steps ;
yinc=dy/(float)steps ;
putpixel(ROUND(x),ROUND(y),2);
for(k=0;k<steps;k++)
{
x+=xinc;
y+=yinc;
putpixel(ROUND(x),ROUND(y),2);
}
}
void main()
{
int a=DETECT,b;
int x1,y1,x2,y2,ax1,ay1,ax2,ay2;
initgraph(&a,&b,"c:\\tc\\bgi");
DDA(10,10,100,100);
chk_mouse();
show_mouse();
while(!kbhit())
{
if(mouse_pressed(0))
get_mouse(&x1,&y1);
if(mouse_released(0))
get_mouse(&x2,&y2);
DDA(x1,y1,x2,y2);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -