⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chakri.cpp

📁 this is a graphical editor similar to MS_PAINT built using c++ language runs on turbo c++ compiler
💻 CPP
📖 第 1 页 / 共 4 页
字号:
	 putpixel(xc-x,yc+y,cbut);
      storepixel(xc-x,yc-y);
      if((xc-x>73&&xc-x<638)&&(yc-y>69&&yc-y<443))
	 putpixel(xc-x,yc-y,cbut);
      storepixel(xc+y,yc+x);
      if((xc+y>73&&xc+y<638)&&(yc+x>69&&yc+x<443))
	 putpixel(xc+y,yc+x,cbut);
      storepixel(xc-y,yc+x);
      if((xc-y>73&&xc-y<638)&&(yc+x>69&&yc+x<443))
	 putpixel(xc-y,yc+x,cbut);
      storepixel(xc+y,yc-x);
      if((xc+y>73&&xc+y<638)&&(yc-x>69&&yc-x<443))
	 putpixel(xc+y,yc-x,cbut);
      storepixel(xc-y,yc-x);
      if((xc-y>73&&xc-y<638)&&(yc-x>69&&yc-x<443))
	 putpixel(xc-y,yc-x,cbut);
      if(d<0)
	 d+=2*x+3;
      else {
	 d+=2*(x-y)+5;
	 y--;
      }
      x++;
   }
   return;
}

void rect(int x1,int y1,int x2,int y2)
{
   bresline(x1,y1,x2,y1);
   bresline(x2,y1,x2,y2);
   bresline(x2,y2,x1,y2);
   bresline(x1,y2,x1,y1);
   return;
}

void plot(int x,int y,int x1,int y1)
{
   storepixel(x+x1,y+y1);
   if((x+x1>73&&x+x1<638)&&(y+y1>69&&y+y1<443))
      putpixel(x+x1,y+y1,cbut);
   storepixel(x+x1,y-y1);
   if((x+x1>73&&x+x1<638)&&(y-y1>69&&y-y1<443))
      putpixel(x+x1,y-y1,cbut);
   storepixel(x-x1,y+y1);
   if((x-x1>73&&x-x1<638)&&(y+y1>69&&y+y1<443))
      putpixel(x-x1,y+y1,cbut);
   storepixel(x-x1,y-y1);
   if((x-x1>73&&x-x1<638)&&(y-y1>69&&y-y1<443))
      putpixel(x-x1,y-y1,cbut);
   return;
}

void rplotc(int x,int y,int x1,int y1,int cbut)
{
   if((x+x1>73&&x+x1<635)&&(y+y1>69&&y+y1<441))
      putpixel(x+x1,y+y1,cbut);
   if((x-x1>73&&x-x1<635)&&(y+y1>69&&y+y1<441))
      putpixel(x-x1,y+y1,cbut);
   if((x+x1>73&&x+x1<635)&&(y+x1>69&&y+x1<441))
      putpixel(x+y1,y+x1,cbut);
   if((x-y1>73&&x-y1<635)&&(y+x1>69&&y+x1<441))
      putpixel(x-y1,y+x1,cbut);
   return;
}

void rcplot(int x,int y,int x1,int y1,int cbut)
{
   if((x+x1>73&&x+x1<635)&&(y-y1>69&&y-y1<441))
      putpixel(x+x1,y-y1,cbut);
   if((x-x1>73&&x-x1<635)&&(y-y1>69&&y-y1<441))
      putpixel(x-x1,y-y1,cbut);
   if((x+y1>73&&x+y1<635)&&(y-x1>69&&y-x1<441))
      putpixel(x+y1,y-x1,cbut);
   if((x-y1>73&&x-y1<635)&&(y-x1>69&&y-x1<441))
      putpixel(x-y1,y-x1,cbut);
   return;
}

void rspiralcircle(int x,int y,int r,int ch,int cbut)
{
   int x1,y1,p;
   x1 = 0;
   y1 = r;
   p = 3-(2*r);
   while(x1<=y1) {
      if(ch==1)
	 rplotc(x,y,x1,y1,cbut);
      else
      rcplot(x,y,x1,y1,cbut);
      if(p<0)
	 p=p+4*x1+6;
      else {
	 p=p+4*(x1-y1)+10;
	 y1--;
      }
      x1++;
   }
   return;
}

void rspiral(int x,int y,int r,int t,int cbut)
{
   int c;
   for(c=t;c<r;c+=t) {
      rspiralcircle(x,y,c,1,cbut);
      x = x - t;
      rspiralcircle(x,y,c+t,0,cbut);
      x = x + t;
      c += t;
   }
   return;
}

void Spiral(int x1,int y1,int x2,int y2)
{
   int x3,a,b,a1,b1,rad;
   double r;
   a = abs(x2-x1);
   b = abs(y2-y1);
   r = sqrt( (double) a*a + (double) b*b);
   rspiral(x1,y1,r,3,cbut);
   return;
}

void tdrect(int x1,int y1,int x2,int y2)
{
   bresline(x1,y1,x2,y1);
   bresline(x2,y1,x2,y2);
   bresline(x2,y2,x1,y2);
   bresline(x1,y2,x1,y1);
   bresline(x1+20,y1-20,x2+20,y1-20);
   bresline(x2+20,y1-20,x2+20,y2-20);
   bresline(x2+20,y2-20,x1+20,y2-20);
   bresline(x1+20,y2-20,x1+20,y1-20);
   bresline(x1+20,y1-20,x1,y1);
   bresline(x2+20,y1-20,x2,y1);
   bresline(x2+20,y2-20,x2,y2);
   bresline(x1+20,y2-20,x1,y2);
   return;
}

void tdpyram(int x1,int y1,int x2,int y2)
{
   bresline(x1,y1,x2,y2);
   bresline(x1,y1,x1+60,y2);
   bresline(x1,y1,x1+100,y2-29);
   bresline(x2,y2,x1+60,y2);
   bresline(x1+60,y2,x1+100,y2-30);
   return;
}

void bresellipse(int xc,int yc,long a,long b)
{
   int x=0,y,y1;
   long d;
   if(a<0)
      a=-a;
   if(b<0)
      b=-b;
   if(a<5)
      a=5;
   if(b<1)
      b=1;
   d = b*b-a*a*b;
   y = b;
   while(a*a*(y-0.25)>b*b*(x+1)) {
      plot(xc,yc,x,y);
      d += b * b * (2*x+3);
      if(d>=0) {
	 d+=a*a*(-2*y+2);
	 y--;
      }
      x++;
   }
   d=a*a-b*b*a;
   y1=0;x=a;
   while(y1<=y) {
      plot(xc,yc,x,y1);
      d+=a*a*(2*y1+3);
      if(d>=0) {
	 d+=b*b*(-2*x+2);
	 x--;
      }
      y1++;
   }
   return;
}
void hope(int option,int cbut,int patt)
{
   int x,y,butt,x1,y1,j,r,flag=1;
   int x2=0,y2=0;
   cbut1=cbut;
   showmptr();
   butt=0;
   setcolor(cbut);
   while((butt!=2)&&(flag)) {
      getmpos(&butt,&x,&y);
      if((butt&1)==1) {
	 while(1) {
	    getmpos(&butt,&x,&y);
	    if((butt==1)&&(x>73&&x<638)&&(y>69&&y<443)) {
	       x1=x;
	       y1=y;
	       break;
	    }
	 }
	 hidemptr();
	 while(butt==1) {
	    getmpos(&butt,&x,&y);
	    if(x!=x2 || y!=y2) {
	       x2=x;y2=y;
	       for(j=0;j<index;j++)
	       putpixel(a[j].sx,a[j].sy,a[j].sc);
	       index=0;
	       setcolor(cbut);
	       switch(option) {
		  case 1:bresline(x1,y1,x2,y2);
			 break;
		  case 2:brescircle(x1,y1,(x2-x1));
			 array[0]=x1,array[1]=y1;
			 array[2]=x2-x1;
			 array[9]=2;
			 break;
		  case 3:rect(x1,y1,x2,y2);
			 array[0]=x1,array[1]=y1;
			 array[2]=x2,array[3]=y2;
			 array[9]=3;
			 break;
		  case 4:bresellipse(x1,y1,x2-x1,y2-y1);
			 array[0]=x1,array[1]=y1;
			 array[2]=x2-x1,array[3]=y2-y1;
			 array[9]=4;
			 break;
		  case 5:tdrect(x1,y1,x2,y2);
			 break;
		  case 6:
			 restrictmptr(1,39,638,478);
			  arc(x1,y1,(x2-x1),20,100);
			 break;
		  case 7:Spiral(x1,y1,x2,y2);
			 break;
		  case 8:tdpyram(x1,y1,x2,y2);
			 break;
		  case 9:restrictmptr(75,71,636,442);
			 rect(x1,y1,x2,y2);
			 restrictmptr(1,39,638,478);
			 select[0]=x1+1;
			 select[1]=y1+1;
			 select[2]=x2-1;
			 select[3]=y2-1;
			 flag=0;
			 break;
	       }
	    }
	 }
	 switch(array[9]) {
	    case 2:if(patt==0)
		      break;
		   else {
		      setcolor(cbut);
		      rectangle(73,69,636,442);
		      setfillstyle(patt,cbut);
		      floodfill(array[0],array[1],cbut);
		      setcolor(bkgrnd);
		      rectangle(73,69,636,442);
		      break;
		   }
	    case 3:if(patt==0)
		      break;
		   else {
		      setfillstyle(patt,cbut);
		      bar(array[0],array[1],array[2],array[3]);
		      break;
		   }
	    case 4:if(patt==0)
		      break;
		   else {
		      setcolor(cbut);
		      rectangle(73,69,636,442);
		      setfillstyle(patt,cbut);
		      floodfill(array[0],array[1],cbut);
		      setcolor(bkgrnd);
		      rectangle(73,69,636,442);
		      break;
		   }
	 }
	 index=0;
	 showmptr();
      }
   }
   return;
}

/*to press button */
press(int x5[][4],int globkey)
{
   int i;
   for(i=0;i<=globkey;i++) {
      if(i==globkey) {
	 setcolor(WHITE);
	 line(x5[i][0],x5[i][3],x5[i][2],x5[i][3]);
	 line(x5[i][2],x5[i][3],x5[i][2],x5[i][1]);
	 setcolor(BLACK);
	 line(x5[i][0],x5[i][1],x5[i][2],x5[i][1]);
	 line(x5[i][0],x5[i][1],x5[i][0],(x5[i][3])+1);
	 break;
      }
   }
   return 0;
}

depress(int x5[][4],int globkey)
{
   int i;
   for(i=0;i<=globkey;i++) {
      if(i==globkey) {
	 setcolor(LIGHTGRAY);
	 line(x5[i][0],x5[i][3],x5[i][2],x5[i][3]);
	 setcolor(WHITE);
	 line(x5[i][0],x5[i][1],x5[i][2],x5[i][1]);
	 line(x5[i][0],x5[i][1],x5[i][0],x5[i][3]);
	 setcolor(BLACK);
	 line((x5[i][0]),(x5[i][3])+1,x5[i][2],(x5[i][3])+1);
	 line(x5[i][2],x5[i][3],x5[i][2],x5[i][1]);
	 break;
      }
   }
   return 0;
}

/* erasing function */
eraser(int globkey,int bkgrnd)
{
   int butt,x,y;
   while(globkey==1) {
      getmpos(&butt,&x,&y);
      if(butt==1) {
	 hidemptr();
	 setfillstyle(1,bkgrnd);
	 if((x>73&&x<638)&&(y>69&y<443)) {
	    //bar(x-4,y-4,x+8,y+4);
	    setfillstyle(1,BLACK);
	    rectangle(x-4,y-4,x+8,y+4);
	    delay(10);
	    setfillstyle(1,bkgrnd);
	    bar(x-4,y-4,x+8,y+4);
	 }
	 globkey=1;
      }
      showmptr();
      if(butt==2) {
	 globkey=0;
      }
   }
   return 0;
}

/* paint function */
paint(int globkey)
{
   int butt,x,y;
   showmptr();
   while(globkey==3) {
      getmpos(&butt,&x,&y);
      if(butt==1) {
	 hidemptr();
	 setfillstyle(1,cbut);
	 bar(x-4,y-4,x+4,y+4);
	 putpixel(x,y,cbut);
	 putpixel(x+1,y+1,cbut);
	 putpixel(x+2,y,cbut);
	 putpixel(x-1,y,cbut);
	 putpixel(x-2,y-2,cbut);
	 putpixel(x,y-3,cbut);
	 putpixel(x+3,y,cbut);
	 showmptr();
      }
      else if(butt==2) {
	 globkey=0;
      }
   }
   return 0;
}

/* file drop down box */
save5(int );
load5(int );

int choice=0;

file()
{
   int i;
   choice=1;
   hidemptr();
   setcolor(0);
   line(95,45,134,45);
   line(95,45,95,63);
   setcolor(15);
   line(95,63,134,63);
   line(134,45,134,63);
   save5(choice);
   setcolor(LIGHTGRAY);
   for(i=70;i<220;i++) {
      line(95,i,195,i);
      putpixel(195,i,0);
      putpixel(96,i,15);
      delay(1);
   }
   setcolor(0);
   line(95,220,195,220);
   setcolor(DARKGRAY);
   line(100,107,190,107);
   line(100,144,190,144);
   line(100,181,190,181);
   setcolor(15);
   line(100,108,190,108);
   line(100,145,190,145);
   line(100,182,190,182);
   settextstyle(4,0,2);
   settextstyle(4,0,2);
   setcolor(BLUE);
   outtextxy(125,72,"New");
   outtextxy(125,110,"Load");
   outtextxy(125,147,"Save");
   outtextxy(125,184,"Exit");
   settextstyle(4,0,2);
   return 0;
}

edit()
{
   int i;
   choice=2;
   hidemptr();
   setcolor(0);
   line(215,45,260,45);
   line(215,45,215,63);
   setcolor(15);
   line(215,63,260,63);
   line(260,45,260,63);
   save5(choice);
   setcolor(LIGHTGRAY);
   for(i=70;i<250;i++) {
      line(215,i,315,i);
      putpixel(315,i,0);
      putpixel(216,i,15);
      delay(2);
   }
   setcolor(0);
   line(215,250,315,250);
   setcolor(DARKGRAY);
   line(220,100,310,100);
   line(220,130,310,130);
   line(220,160,310,160);
   line(220,190,310,190);
   line(220,220,310,220);
   line(220,250,310,250);
   setcolor(15);
   line(220,101,310,101);
   line(220,131,310,131);
   line(220,161,310,161);
   line(220,191,310,191);
   line(220,221,310,221);
   settextstyle(4,0,2);
   setcolor(BLUE);
   outtextxy(235,72,"Clear");
   outtextxy(235,102,"Copy");
   outtextxy(235,132,"Paste");
   outtextxy(235,162,"Scale");
   outtextxy(235,192,"Rotate");
   outtextxy(235,222,"Translate");
   return 0;
}

view()
{
   int i;
   choice=3;
   hidemptr();
   setcolor(0);
   line(335,45,385,45);
   line(335,45,335,63);
   setcolor(15);
   line(335,63,385,63);
   line(385,45,385,63);
   save5(choice);
   setcolor(LIGHTGRAY);
   for(i=70;i<165;i++) {
      line(335,i,435,i);
      putpixel(435,i,0);
      putpixel(336,i,15);
      delay(1);
   }
   setcolor(0);
   line(335,165,435,165);
   setcolor(DARKGRAY);
   line(340,100,430,100);
   line(340,130,430,130);
   setcolor(15);
   line(340,101,430,101);
   line(340,131,430,131);
   settextstyle(4,0,2);
   setcolor(BLUE);
   outtextxy(355,72,"Line");
   outtextxy(355,102,"Wheel");
   outtextxy(355,132,"Pyramid");
   return 0;
}

credits()
{
   int i;
   choice=4;
   hidemptr();
   setcolor(0);
   line(455,45,525,45);
   line(455,45,455,63);
   setcolor(15);
   line(455,63,525,63);
   line(525,45,525,63);
   save5(choice);
   setcolor(GREEN);
   for(i=0;i<230;i++) {
      line(354-i,125,354-i,375);
      delay(10);
      line(355+i,125,355+i,375);
   }
   setcolor(WHITE);
   for(i=0;i<6;i+=2)
    rectangle(129+i,128+i,580-i,372-i);
   settextstyle(1,0,2);
   outtextxy(305,137,"CREDITS");
   for(i=0;i<4;i+=2)
      line(290,165+i,398,165+i);
   settextstyle(2,0,5);
    outtextxy(145,180,"         WE ARE THANKFULL TO THE GUIDANCE OF   ");
   outtextxy(145,200,"                      MR.CHIKERUR           ");
   outtextxy(145,220,"         FOR HELPING IN DOING THIS EDITOR");
   outtextxy(145,240,"             VI SEM COMPUTER SCIENCE ");
   outtextxy(145,260,"AND CODING TO OTHER PROGRAMS IS PURELY COINCIDENTAL");
   outtextxy(145,280,"CAN BE USED ,COPIED ,DISTRIBUTED AND MODIFIED FREE ");
   outtextxy(145,300,"OF ANY COST WHATSOEVER ... [ CLICK HERE ] ");
  // outtextxy(145,340,"CHANGES CAN BE EMAILED TO US AT 'BVBCS@REDIFFMAIL.COM'");
   //outtextxy(160,220," VI sem computer science ");
   //outtextxy(160,240,"and coding to other programs is purely coincidental");
   //outtextxy(160,280,"can be used ,copied ,distributed and modified free ");
   //outtextxy(160,300,"of any cost whatsoever ... [ CLICK HERE ] ");
   //outtextxy(151,340,"CHANGES CAN BE EMAILED TO US AT 'BMUDAY@REDIFFMAIL.COM'");
   return 0;
}

cleanup()
{
   setcolor(LIGHTGRAY);
   rectangle(95,45,134,63);
   rectangle(215,45,260,63);
   rectangle(335,45,385,63);
   rectangle(455,45,525,63);
   load5(choice);
   return 0;
}

save5(int choice)
{
   int x,y,color,ocolor,maxx,maxy,minx,miny;
   char fname[]="eddyop1";
   FILE *fp=fopen(fname,"w");
   switch(choice) {
      case 1:minx=95;
	     miny=70;
	     maxx=195;
	     maxy=220;
	     break;
      case 2:minx=215;
	     miny=70;
	     maxx=315;
	     maxy=250;
	     break;
      case 3:minx=335;
	     miny=70;
	     maxx=435;
	     maxy=165;
	     break;
      case 4:minx=124;
	     miny=125;
	     maxx=585;
	     maxy=375;
	     break;
   }
   hidemptr();
   ocolor = getpixel(minx+2,miny+2);
   for(y=miny;y<=maxy;y++) {
      for(x=minx;x<=maxx;x++) {
	 color = getpixel(x,y);
	 ocolor='a'+color;
	 fprintf(fp,"%c",ocolor);
      }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -