希望使用Canvas的方式,模擬一個圓在Image中跑來跑去 |
缺席
|
sunwingman
一般會員 發表:26 回覆:47 積分:14 註冊:2008-05-14 發送簡訊給我 |
目前我使用的方式如下: ============== Image1->Canvas->Ellipse(xx-10,yy-10,xx 10,yy 10); aa = xx; yy =5; Image1->Canvas->Ellipse(xx-10,yy-10,xx 10,yy 10); //先畫出下一個位置要出現的圓 Image1->Canvas->Brush->Color = clWhite; //設成跟畫布一樣的顏色,為了把上一個畫的圓清掉 ============== 不過這個方式,所呈現出來會變成一個不完整的圓。(因為會一直被蓋掉部份) 想請問各位前備有沒有解決方法? 編輯記錄
|
hichcock
一般會員 發表:2 回覆:11 積分:17 註冊:2009-09-17 發送簡訊給我 |
|
sunwingman
一般會員 發表:26 回覆:47 積分:14 註冊:2008-05-14 發送簡訊給我 |
|
sunwingman
一般會員 發表:26 回覆:47 積分:14 註冊:2008-05-14 發送簡訊給我 |
目前想到一個解法,程式碼如下: ========================== xx=100; yy=100; aa=0; bb=0; dd=0; void __fastcall TForm1::Timer2Timer(TObject *Sender) { Image1->Canvas->Pen->Style = psClear; Image1->Canvas->Brush->Style = bsSolid; Image1->Canvas->Brush->Color = clBlue; Image1->Canvas->Ellipse(xx-50,yy-50,xx 50,yy 50); aa = xx; bb = yy; xx =dd; yy =dd; Image1->Canvas->Brush->Color = clLime; Image1->Canvas->Ellipse(xx-50,yy-50,xx 50,yy 50); Image1->Canvas->Pen->Mode = pmNotXor; Image1->Canvas->Brush->Color = clBlue; Image1->Canvas->Ellipse(aa-50,bb-50,aa 50,bb 50); Image1->Canvas->Pen->Mode = pmCopy; Image1->Canvas->Brush->Color = clLime; Image1->Canvas->Ellipse(xx-50,yy-50,xx 50,yy 50); dd=10; } ========================== 這樣就可以有一個綠色的圓,在畫面中移動, 不過看起來感覺有點多餘,所以還是想請問各位前輩,是否有更好得解法?
編輯記錄
|
sunwingman
一般會員 發表:26 回覆:47 積分:14 註冊:2008-05-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |