lisha
路人甲
路人甲
  • 注册日期2008-04-05
  • 发帖数3
  • QQ
  • 铜币9枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1642回复:0

请教C++BUILDER

楼主#
更多 发布于:2008-05-10 13:25
<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>
喜欢0 评分0
游客

返回顶部