一張圖有很多小圓,我已標記圓心,要如何在標記1 2 3 4 5 |
缺席
|
god12dog
一般會員 發表:14 回覆:3 積分:3 註冊:2007-12-14 發送簡訊給我 |
|
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
如果您已知各個圓心之座標 (x,y) 及直徑或半徑 (pixels 數),則:
(1) (半徑的平方 半徑的平方) 開根號(即 0.5次方) = 中間可填字正方形之寬與高。 (2) 找出可用字型之 Size,字型之寬高不一定相等,且不同字符也不一定等寬,依字型而定。 但字高依 FontSize 而定, 例如:9號字高為 9/72吋,在 96 Pixels per Inch 的螢幕解析度下, 等於 9/72*96 = 12 Pixels 高。細明體為等寬字,英數字之字寬為字高的二分之一; Courier new 也是等寬字,但英數字之字寬約為字高的0.65,其他調合字則依各字型而定。 設定 FontName 及 FontSize 後,您可以用 Canvas->TextWidth("W") 與 Canvas->TextHeight("W") 測試是否可填得進圓圈中。 (3) 確定字寬及字高,又已知各個圓心之座標 (x,y),您應就知道如何把字畫到圓中央了吧! 若尚有疑問,請將 Code 及圖貼上來尋求大家的協助。 請參閱『新手須知』,便可知如何發文、貼 Code 與貼圖。 註:才剛回文,就看到您的圖,不是圓嗎! 若不在意字的大小與位置,您可參考本文試作。 ===================引 用 god12dog 文 章=================== 要如何幫他們個別標記1 2 3 4 5 圖沒貼成功@@
編輯記錄
herbert2 重新編輯於 2008-11-24 21:42:46, 註解 無‧
|
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
|
god12dog
一般會員 發表:14 回覆:3 積分:3 註冊:2007-12-14 發送簡訊給我 |
===================引 用 herbert2 文 章=================== 前文是告訴您如何解決您的問題的概念, 不知是否合您用. 不知您不會的是那個部分, 故無法進一步協助您! 原則上, 提問應有明確的問題. 光從電話告訴醫生說發燒, 醫生也會無從診斷起, 不是嗎? 先在 KTop 搜尋關鍵字, 可能有您要的答案. 再其次, 也可參考他人是如何發問, 以及, 那類型的發問, 會讓會友不知要如何回答! =============================================== 我主要是想把那些圓個別找出來 然後再個別分析它們的面積,周長和比值 |
herbert2
尊榮會員 發表:58 回覆:640 積分:894 註冊:2004-04-16 發送簡訊給我 |
『圓』的定義為何? 那些像『地圖』的黃色區塊怎能稱為『圓』呢?
您要的面積的單位是什麼? Pixels ? square inch ? square cm ? 周長的單位是什麼? Pixels ? inch ? cm ? 比值是那個比那個? 您知道電腦中的圖形檔的結構嗎? 您這是學校作業? 還是接案子? 請把您的 Code 貼出來, 才能對症下藥. 原則上, 無 Code 的作業是不該回答的. ===================引 用 god12dog 文 章=================== 我主要是想把那些圓個別找出來 然後再個別分析它們的面積,周長和比值 |
god12dog
一般會員 發表:14 回覆:3 積分:3 註冊:2007-12-14 發送簡訊給我 |
[code cpp]
int f=0,g=0,h=0,i,j,x,y,p=0,q=0,r=0,s=0,x0,y0,have=0; int flag=1; Byte *ptr1, *ptr2, *ptr3, *ptr_1, *ptr_2, *ptr_3, *ptr_4, *ptr_5; Bitmap4->Assign(Bitmap2); Bitmap4->Height=Image1->Height; Bitmap4->Width=Image1->Width; for(y=0;y<=Bitmap4->Height-1;y ) { ptr1=(Byte *)Bitmap4->ScanLine[y]; for(x=0;x<=Bitmap4->Width-1;x ) { if(ptr1[x*3]!=0) { ptr1[x*3]=255; ptr1[x*3 1]=255; ptr1[x*3 2]=255; } else { ptr1[x*3]=0; ptr1[x*3 1]=0; ptr1[x*3 2]=0; } } } while(1) { x=1; y=1; ptr1=(Byte *)Bitmap4->ScanLine[y]; while(ptr1[x*3]!=255) { if(x==Bitmap4->Width-2 && y==Bitmap4->Height-2) { have=1; break; } if(x==Bitmap4->Width-1) { x=0; y ; } x ; ptr1=(Byte *)Bitmap4->ScanLine[y]; } if(have==1) { break; } y0=y; ptr1[x*3]=flag; ptr1[x*3 1]=flag; ptr1[x*3 2]=flag; for(y=y0;y<=Image1->Height-2;y ) { ptr2=(Byte *)Bitmap4->ScanLine[y]; for(x=1;x<=Image1->Width-2;x ) { if(ptr2[x*3]==flag) { for(j=y-1;j ptr_1=(Byte *)Bitmap4->ScanLine[j]; for(i=x-1;i if(ptr_1[i*3]==255) { ptr_1[i*3]=flag; ptr_1[i*3 1]=flag; ptr_1[i*3 2]=flag; } } } } } ptr2=(Byte *)Bitmap4->ScanLine[y]; for(x=Image1->Width-2;x>=1;x--) { if(ptr2[x*3]==flag) { for(j=y-1;j ptr_2=(Byte *)Bitmap4->ScanLine[j]; for(i=x-1;i if(ptr_2[i*3]==255) { ptr_2[i*3]=flag; ptr_2[i*3 1]=flag; ptr_2[i*3 2]=flag; } } } } } } flag ; } for(j=1;j for(y=0;y<=Bitmap4->Height-1;y ) { ptr_4=(Byte *)Bitmap4->ScanLine[y]; for(x=0;x<=Bitmap4->Width-1;x ) { if(ptr_4[x*3]==j) { ptr_4[x*3]=50; ptr_4[x*3 1]=255; ptr_4[x*3 2]=255; p =x; q ; r =y; s ; } } } int xx=p/q; int yy=r/s; for(int b=yy-1;b<=yy 1;b ) { ptr_5=(Byte *)Bitmap4->ScanLine[b]; if(b==yy-1) { ptr_5[xx*3]=0; ptr_5[xx*3 1]=0; ptr_5[xx*3 2]=255; } if(b==yy) { for(int a=xx-1;a<=xx 1;a ) { ptr_5[a*3]=0; ptr_5[a*3 1]=0; ptr_5[a*3 2]=255; } } if(b==yy 1) { ptr_5[xx*3]=0; ptr_5[xx*3 1]=0; ptr_5[xx*3 2]=255; } } p=q=r=s=0; } Image1->Picture->Assign(Bitmap4); [/code] 這是我標記中心點的程式 然後我回答大大的幾個問題 那些像『地圖』的黃色區塊怎能稱為『圓』呢? 因為我不知道要怎說那些圖...只好統稱是圓... 您要的面積,周長的單位是什麼? Pixels 比值是周長除與面積!! 您這是學校作業? 還是接案子? 這個是作業....做不出來也不能畢業ˊˋ老師說的
編輯記錄
god12dog 重新編輯於 2008-11-25 00:31:23, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |