国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

橡皮筋畫線法

2019-11-17 05:30:40
字體:
供稿:網(wǎng)友
在這里我用STRUCT和指向函數(shù)的指針定義結(jié)合實現(xiàn)了模擬鼠標(biāo)類,并用它來寫了橡皮筋畫線法#include <stdio.h>
#include <graphics.h>
#include <dos.h>
typedef struct
{
 void (*Inits)();/*初始化鼠標(biāo)驅(qū)動*/ 
 int  (*MButton)();/*按鍵位置與按鍵狀態(tài)*/
 void (*MouseIco)();/*畫鼠標(biāo)光標(biāo)*/
 int  x;/*橫向坐標(biāo)*/
 int  y;/*豎向坐標(biāo)*/
 int  ox;
 int  oy;
 int  button;/*按鍵標(biāo)志*/
}MOUSE;/*鼠標(biāo)類*/
void mInits();
int  mMButton();
void mMouseIco();
union REGS rg;
int main()
{
 MOUSE *pM,mouse;
 int graphdrive=0,graphmode=0;
 int tracking=0,x1,y1,ox1,oy1;
 pM=&mouse;
 pM->Inits=mInits;
 pM->MButton=mMButton;
 pM->MouseIco=mMouseIco;
 initgraph(&graphdrive,&graphmode,"");
 setbkcolor(1);
 setwritemode(1);/*畫線模式*/
 pM->Inits(&pM->x,&pM->y);
 pM->ox=pM->x;
 pM->oy=pM->y;
 do
 {
  pM->button=pM->MButton(&pM->x,&pM->y);
  pM->MouseIco(&pM->x,&pM->y,&pM->ox,&pM->oy);
  if(pM->button==1)
  {
    if(!tracking)/*捕捉開關(guān)*/
       {
  ox1=x1=pM->x;
  oy1=y1=pM->y;
  tracking=1;
       }
    if(pM->x!=ox1pM->y!=oy1)
     {
      line(x1,y1,ox1,oy1);
      ox1=pM->x;
      oy1=pM->y;
      line(x1,y1,pM->x,pM->y);
     }
  }
  else tracking=0;
 }while(pM->button!=3);
}
void mInits(int *mx,int *my)
{
 rg.x.ax=0;
 int86(0x33,&rg,&rg);
 if(rg.x.ax==0)
    exit(1);
 rg.x.ax=7;
 rg.x.cx=2;
 rg.x.dx=640;
 int86(0x33,&rg,&rg);
 rg.x.ax=8;
 rg.x.cx=2;
 rg.x.dx=480;
 int86(0x33,&rg,&rg);
 rg.x.ax=4;
 *mx=rg.x.cx=640/2;
 *my=rg.x.dx=480/2;
 int86(0x33,&rg,&rg);
 rectangle(rg.x.cx-2,rg.x.dx-2,rg.x.cx+2,rg.x.dx+2);
}
int mMButton(int *lx,int *ly)
{
 rg.x.ax=3;
 int86(0x33,&rg,&rg);
 *lx=rg.x.cx;
 *ly=rg.x.dx;
 return rg.x.bx;
}
void mMouseIco(int *x,int *y,int *oldx,int *oldy)
{
 if(*x!=*oldx*y!=*oldy)
 {
  rectangle(*oldx-2,*oldy-2,*oldx+2,*oldy+2);
  *oldx=*x;
  *oldy=*y;
  rectangle(*x-2,*y-2,*x+2,*y+2);
 }
}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 徐闻县| 泗阳县| 佳木斯市| 邯郸市| 涞水县| 娄底市| 砚山县| 福贡县| 麻栗坡县| 鄂托克前旗| 泸水县| 诸城市| 新巴尔虎左旗| 滕州市| 宁河县| 江口县| 博野县| 来安县| 江永县| 革吉县| 讷河市| 万山特区| 海口市| 乌拉特后旗| 南雄市| 荔浦县| 奉新县| 高邮市| 灵丘县| 佛山市| 香港 | 灵石县| 隆尧县| 重庆市| 丰台区| 博兴县| 富宁县| 兴文县| 富宁县| 衡南县| 江津市|