線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1114
推到 Plurk!
推到 Facebook!

畫多邊形的問題

尚未結案
kame2004
一般會員


發表:2
回覆:0
積分:0
註冊:2005-03-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-10 20:47:49 IP:140.115.xxx.xxx 未訂閱
我參考書及寫了一個畫封閉多邊形的小程式,但在繪製第二或更多個多邊形時,往往會與前一個多邊形的終點連在一起,想請各位高手為我解惑一下  謝謝 >>>>>>>>>
------
陳筱微
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-10 21:37:14 IP:218.168.xxx.xxx 未訂閱
您好:    PO程式碼的方式請參考版規說明,煩請修改謝謝您的配合 >
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-10 22:23:42 IP:211.76.xxx.xxx 未訂閱
kame2004 您好:    1.因為Polyline(不會連成封閉圖形)與Polygon(連成封閉圖形)兩者畫圖時略有不同,所以作了一些修正。 2.double click 會再引入新的點導致繪圖的不精確,因此我將其移除。 3.所有的反應均由滑鼠的左右鍵控制:左鍵選點,右鍵畫圖。    改寫程式碼如下,請參考。    
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
  if ( Button==mbLeft )
    { // if ( md>=POINT_MAX-1 ) return; // 假設最多存POINT_MAX點
      P[md]=Point(X,Y);
      Image1->Canvas->Pixels[X][Y]=clRed;
      md  ;
    }
  else
    { switch(con)
        { case 1:
            P[md] = P[0];
            Image1->Canvas->Polyline(P,md);
            break;
          case 2:
            Image1->Canvas->Polygon(P,md-1);
            break;
        }
      md = 0;
    }
}
RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### 發表人 - richtop 於 2005/05/10 22:43:27
JapStyle
一般會員


發表:6
回覆:8
積分:2
註冊:2005-04-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-11 14:49:44 IP:59.120.xxx.xxx 未訂閱
試試加上Image2->Canvas->MoveTo(X,Y); (X,Y)為你要畫的第二個多邊形的起始位置
系統時間:2024-05-13 4:44:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!