阅读:1756回复:0
请教C++BUILDER
<P>以下程序错在哪了?</P>
<P>//---------------------------------------------------------------------------<BR>#include <vcl\vcl.h><BR>#pragma hdrstop<BR>#include "math.h"<BR>#include "Unit1.h"<BR>//---------------------------------------------------------------------------<BR>#pragma resource "*.dfm"<BR>TForm1 *Form1;<BR>int xs,ys,xt,yt;<BR>int xx,yy;<BR>//TColor bco, fco;<BR>void bh(int x1,int y1,int x2,int y2,TColor co,HDC dc)<BR>{<BR>int x,y,e,m,dx,dy,k;<BR>float l;<BR>dx=x2-x1;<BR>dy=y2-y1;<BR>x=x1;<BR>y=y1;<BR>if(dx==0)<BR> for(k=0;k<y;k++)<BR> SetPixel(dc,x,y++,co);<BR>else if(dy==0)<BR> for(k=0;k<x;k++)<BR> SetPixel(dc,x++,y,co);</P> <P>else<BR>{m=dy/dx;<BR>l=sqrt(dx*dx+dy*dy);<BR>if(abs(m)<=1) e=2*abs(dy)-abs(dx);<BR>else e=2*abs(dx)-abs(dy);</P> <P>for(k=1;k<l;k++)<BR>{<BR> SetPixel(dc,x,y,co);<BR> if(e>0)<BR> {<BR> if(abs(m)<=1)<BR> {<BR> if(dy>0) y++;<BR> else y--;<BR> e-=2*abs(dx);<BR> }<BR> else<BR> {<BR> if(dx>0) x++;<BR> else x--;<BR> e-=2*abs(dy);<BR> }<BR> }<BR> if(abs(m)<=1)<BR> {<BR> if(dx>0) x++;<BR> else x--;<BR> e+=2*abs(dy);<BR> }<BR> else<BR> {<BR> if(dy>0) y++;<BR> else y--;<BR> e+=2*abs(dx);<BR> }<BR>}<BR>}<BR>}</P> <P><BR>void Scanline_seed_fill(HDC dc,int x1,int y1,COLORREF co1,COLORREF co2)<BR>{<BR> int i,k,x,y,mx,my;<BR> int a[20000],b[20000];</P> <P> COLORREF rgbco;<BR> a[0]=x1;<BR> b[0]=y1;<BR> k=0;<BR> x=x1;<BR> y=y1;<BR> SetPixel(dc,x,y,co1);<BR> while(k>=0)<BR> {<BR> x=a[k];<BR> y=b[k];<BR> k--;<BR> rgbco=GetPixel(dc,x,y);<BR> if(rgbco!=co1;;rgbco!=co2)<BR> {<BR> SetPixel(dc,x,y,co1);<BR> Sleep(20);<BR> }<BR> mx=x;<BR> my=y;<BR> for(i=1;i<5;i++)<BR> {<BR> x=mx; y=my;<BR> if(i==1) x++;<BR> else if(i==2) y++;<BR> else if(i==3) x--;<BR> else y--;<BR> rgbco=GetPixel(dc,x,y);<BR> if(rgbco!=co1;;rgbco!=co2)<BR> {<BR> k++;<BR> a[k]=x;<BR> b[k]=y;<BR> }<BR> }<BR>}<BR>//---------------------------------------------------------------------------<BR>__fastcall TForm1::TForm1(TComponent* Owner)<BR> : TForm(Owner)<BR>{<BR>}<BR>//---------------------------------------------------------------------------<BR>void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,<BR> TShiftState Shift, int X, int Y)<BR>{<BR> xs=X;<BR>ys=Y;<BR>}<BR>//---------------------------------------------------------------------------<BR>void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button,<BR> TShiftState Shift, int X, int Y)<BR>{<BR> xt=X;<BR>yt=Y;<BR>HDC dc=GetDC(Form1->Handle);<BR>TColor co=clRed;<BR>bh(xs,ys,xt,yt,co,dc);<BR>}<BR>//---------------------------------------------------------------------------</P> <P><BR>void __fastcall TForm1::Button1Click(TObject *Sender)<BR>{<BR> HDC dc=GetDC(Form1->Handle);<BR>TColor co1=clRed;<BR> TColor co2=clBlue;<BR>Scanline_seed_fill(dc,xx,yy,co1,co2);<BR>}<BR>//---------------------------------------------------------------------------</P> <P><BR> </P> |
|