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

請問一下....由右往左怎麼劃直線呢

尚未結案
小慶
一般會員


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

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-19 13:52:14 IP:61.221.xxx.xxx 未訂閱
各位前輩....請問一下 現在我可以畫由左往右掃的線(如下圖).....那請問一下由右往左掃...遇到pixel=255時要畫 由高=0到高=h/7的直線....程式該怎麼改呢.....我附上去的是由左往右掃的程式 圖檔: 由左往右掃得程式: void __fastcall TForm1::Button3Click(TObject *Sender) { Graphics::TBitmap *TheBitmap, *TempBitmap; TempBitmap = new Graphics::TBitmap; TempBitmap->Assign(Image1->Picture->Bitmap); TempBitmap->PixelFormat = pf8bit; Byte *ptr; int w,h,i,j; w=Image1->Width; h=Image1->Height; int n=0,line=-1; for(i=0;iScanLine[i]; for(j=0;jCanvas->Pen->Color=clGreen; Image1->Canvas->Pen->Width=3; 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-19 17:15:52 IP:140.129.xxx.xxx 未訂閱
小慶 您好:    我有一個問題與一個建議:    問題: 感覺上您的目的有點像是要把各部分最寬的區域(橫向)標示出來,所以好像應該是由左到右與由右到左的上下掃瞄才對,但不知道您真正的需求為何? 如果您之前由左到右的問題解決了,那現在只要改變一下橫向for-loop的值就能做由右到左的掃瞄了。    建議: 程式碼可以參考站上貼碼公告,改善貼碼內容。 另外,您在button上寫著"割脖子",害我猶豫了一下,不知該不該回答這個問題?開開玩笑!< > 感覺您的這個問題應該不難解決,只是您真正的需求我仍無法明白。< > RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====#####
小慶
一般會員


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-19 18:35:13 IP:61.221.xxx.xxx 未訂閱
各位前輩....沒有啦...我想把頭的框框找出來....所以會寫一些比較好笑的名子... 現在我把for(j=0;j ......謝謝各位前輩....
小慶
一般會員


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-19 18:42:48 IP:163.23.xxx.xxx 未訂閱
前輩......對耶........小弟我正是想把三個區域pixel=255的地方標示出來 ...................不知道程式又該怎麼改呢......... 謝謝前輩們... 正在努力學習中的小弟.....
richtop
資深會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-19 21:24:50 IP:211.76.xxx.xxx 未訂閱
小慶 您好:    修改了一下您的程式,請自行對照參考一下!    
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Graphics::TBitmap *TheBitmap, *TempBitmap;
  TempBitmap = new Graphics::TBitmap;
  TempBitmap->Assign(Image1->Picture->Bitmap);
  TempBitmap->PixelFormat = pf8bit;      Byte *ptr;
  int w,h,i,j;
  w=Image1->Width;
  h=Image1->Height;
  int n=0,line=-1;
  int mark=w;
  for (i=0; iScanLine[i];
       line = -1;
       for (j=0; j=250)
              { line=j;
                break;
              }
          }
       if ( line!=-1 && mark>line )
         { mark=line;
           //break;
         }
     }      //if (line != -1)
    { Image1->Canvas->Pen->Color=clGreen;
      Image1->Canvas->Pen->Width=3;
      Image1->Canvas->Pen->Style=psSolid;
      Image1->Canvas->MoveTo(mark,0);
      Image1->Canvas->LineTo(mark,h/7);
    }
  mark=0;
  for (i=0; iScanLine[i];
       line = -1;
       for (j=w-1; j>=0; j--)
          { if (ptr[j]>=250)
              { line=j;
                break;
              }
          }
       if ( line!=-1 && markCanvas->Pen->Color=clGreen;
      Image1->Canvas->Pen->Width=3;
      Image1->Canvas->Pen->Style=psSolid;
      Image1->Canvas->MoveTo(mark,0);
      Image1->Canvas->LineTo(mark,h/7);
    }
  delete TempBitmap;
} 
RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====#####
小慶
一般會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-10-19 22:53:26 IP:163.23.xxx.xxx 未訂閱
太感謝回應我的這位前輩了..............我就是想要這種圖案的處理.... 真的非常謝謝你......... 我把處理過後的圖放上去..... ... 謝謝你 正在努力學習中的小弟
系統時間:2024-05-15 4:18:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!