請問如何計算不規則面積? |
尚未結案
|
enu
中階會員 ![]() ![]() ![]() 發表:36 回覆:93 積分:55 註冊:2003-10-22 發送簡訊給我 |
|
richtop
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
|
andychang1690
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
|
enu
中階會員 ![]() ![]() ![]() 發表:36 回覆:93 積分:55 註冊:2003-10-22 發送簡訊給我 |
|
richtop
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
enu 您好: 理論上用Pixel來判斷是比較簡單且適合離散式的螢幕顯示,但如果您"堅持用數學"來解決,應該也沒問題,不過我尚無實際的實作經驗,僅能提供想法,您參考看看。
理論的根據如下所描述,詳細的內容請翻閱微積分或工程數學書籍,在此難完整呈現。
|
m8815010
版主 ![]() ![]() ![]() ![]() ![]() 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言: 各位先進,請教一個問題,通過一條直線的A、B兩座標,其所構成的不規則形狀面積應如何計算呢(如下圖所示)?enu你好 ~~ TForm1 *Form1; int Get_Trace=false; int x_coor=50; int y_coor=200; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { this->Canvas->MoveTo(50,200); this->Canvas->LineTo(600,200); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { if (!Get_Trace) return; if (Y<200) return; this->Canvas->MoveTo(x_coor,y_coor); this->Canvas->LineTo(X,Y); x_coor=X; y_coor=Y; Memo1->Lines->Add(IntToStr(X)+" "+IntToStr(Y)); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormClick(TObject *Sender) { Get_Trace=!Get_Trace; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { TStringList* coor1=new TStringList; TStringList* coor2=new TStringList; double area=0.; for (int i=1;i注意事項(重要重要) 1. 計算面積的精神就是把不規則region切分成一塊一塊梯形面積各別計算 2. 上述這種計算方式並沒有任何誤差,因為如同一開始解釋的,所以的電腦圖形都是由 有限的點組成,並不是由無限點組成的! 3. 這種求法已concern了converx、concave邊形的問題,user不用擔心! 4. 每個每個點座標是有順序性的,任意改變是不行的。因為任意改變後的座標其實是表 示另一個不規則圖形 5. y軸以下的面積如果有的話,照樣是會被自動計算的,只是會被當成負值而已!如果enu 兄也要計算的話,就多加一條判斷式,把負面積加絕對值即可! 6. enu兄劃的例子其y軸是一條有斜率的斜線,以本範例不同。這個問題同樣只要做座標的 調整即可! 7. 本範例求法最終原點一定要shift到(0,0)哦! 8. capture軟體沒註冊,嘿嘿嘿! 發表人 - m8815010 於 2004/09/27 13:20:15 |
enu
中階會員 ![]() ![]() ![]() 發表:36 回覆:93 積分:55 註冊:2003-10-22 發送簡訊給我 |
|
enu
中階會員 ![]() ![]() ![]() 發表:36 回覆:93 積分:55 註冊:2003-10-22 發送簡訊給我 |
|
m8815010
版主 ![]() ![]() ![]() ![]() ![]() 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言: 謝謝m8815010 先生,可否請教幾個問題? 您所提供的範例經測試,好像不需要封閉曲線也能計算面積 |
enu
中階會員 ![]() ![]() ![]() 發表:36 回覆:93 積分:55 註冊:2003-10-22 發送簡訊給我 |
|
m8815010
版主 ![]() ![]() ![]() ![]() ![]() 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言: 再次感謝m8815010先生,給您用力的賀彩! |
enu
中階會員 ![]() ![]() ![]() 發表:36 回覆:93 積分:55 註冊:2003-10-22 發送簡訊給我 |
|
m8815010
版主 ![]() ![]() ![]() ![]() ![]() 發表:99 回覆:372 積分:289 註冊:2003-11-13 發送簡訊給我 |
引言: 感恩!感恩! 查了一下GetDeviceCaps,實際螢幕長、寬應是HORZSIZE和VERTSIZE才對,Anyway,再請教一個小問題 |
enu
中階會員 ![]() ![]() ![]() 發表:36 回覆:93 積分:55 註冊:2003-10-22 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |