全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1475
推到 Plurk!
推到 Facebook!

請問一下各位前輩該怎麼劃直線????

尚未結案
小慶
一般會員


發表:45
回覆:31
積分:15
註冊:2004-09-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-16 17:28:00 IP:163.23.xxx.xxx 未訂閱
請問一下前輩們 小弟我現在有一張圖我把它分成三等份,然後在第一等份(由上而下為第一等份第二等份第三等份)我想由上到下,由左到右掃描...遇到pixel=255時就劃由上到下得線,小弟我現在怎麼畫出來的現在第一等份的一開始那邊....不知程式是否可請前輩幫我看看哪裡出錯了...謝謝各位.. 圖案: 程式如下:{ Graphics::TBitmap *TheBitmap, *TempBitmap; TempBitmap = new Graphics::TBitmap(); TempBitmap =Image1->Picture->Bitmap; TempBitmap->PixelFormat = pf8bit; Byte *ptr; int w,h,i,j; w=Image1->Width; h=Image1->Height; //unsigned short int piexl[640][480]; int n=0,line; for(int i=0;i<=w;i++) { ptr=(Byte*) TempBitmap->ScanLine[i]; for(int j=0;j<=h/7;j++) { if(ptr[j]==255) n++; } if(n<=2) { line=i; break; } else { n=0; } } Image1->Canvas->Pen->Color=clGreen; Image1->Canvas->Pen->Width=5; Image1->Canvas->Pen->Style=psSolid; Image1->Canvas->MoveTo(line,0); Image1->Canvas->LineTo(line,h/7); }
richtop
資深會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-17 20:52:32 IP:211.76.xxx.xxx 未訂閱
小慶 您好:    不完全了解您的意思。 不過倒是看到程式中有明顯的誤用,您好像把寬高的順序弄反了,先改一下再看看囉! 還有PixelFormat也會影響所作的寬度,這點也要注意一下!  

for (int j=0;j<=h/7;j  )
{ ptr =(Byte*) TempBitmap->ScanLine[j];      for(int i=0;i<=w;i  )
     { if(ptr[i]==255)
       n  ;
     }
  if (n<=2)
    { line=i;
      break;
    }
  else
    { n=0;
    }
}
RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====#####
系統時間:2024-04-20 13:20:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!