導航:首頁 > 源碼編譯 > 填充演算法

填充演算法

發布時間:2022-02-06 09:24:04

㈠ 比較邊界填充演算法和泛填充演算法的異同

現代設計方法與傳統設計方法區別(1)直覺設計階段古代的設計是一種直覺設計。當時人們或是從自然現象中直接得到啟示,或是全憑人的直觀感覺來設計製作工具。設計方案存在於手工藝人頭腦之中,無法記錄表達,產品也是比較簡單的。直覺設計階段在人類歷史中經歷了一個很長的時期,17世紀以前基本都屬於這一階段。(2)經驗設計階段隨著生產的發展,單個手工藝人的經驗或其頭腦中的構思已很難滿足這些要求。於是,手工藝人聯合起來,互相協作。一部分經驗豐富的手工藝人將自己的經驗或構思用圖紙表達出來,然後根據圖紙組織生產。圖紙的出現,即可使具有豐富經驗的手工藝人通過圖紙將其經驗或構思記錄下來,傳與他人,便於用圖紙對產品進行分析、改進和提高,推動設計工作向前發展;還可滿足的人同時參加同一產品的生產活動,滿足社會對產品的需求及提高生產率的要求。因此,利用圖紙進行設計,使人類設計活動由直覺設計階段進入到經驗設計階段。(3)半理論半經驗設計階段20世紀以來,由於科學和技術的發展與進步,設計的基礎理論研究和實驗研究得到加強,隨著理論研究的深入、實驗數據及設計經驗的積累,已形成了一套半經驗半理論的設計方法。這種方法以理論計算和長期設計實踐而形成的經驗、公式、圖表、設計手冊等作為設計的依據,通過經驗公式、近似系數或類比等方法進行設計。依據這套方法進行機電產品設計,稱為傳統設計。所謂「傳統」是指這套設計方法已延用了很長時間,直到現在仍被廣泛地採用著。傳統設計又稱常規設計。(3)現代設計階段近30年來,由於科學和技術迅速發展,對客觀世界的認識不斷深入,設計工作所需的理論基礎和手段有了很大進步,特別是電子計算機技術的發展及應用,對設計工作產生了革命性的突變,為設計工作提供了實現設計自動或和精密計算的條件。例如CAD技術能得出所需要的設計計算結果資料、生產圖紙和數字化模型,一體化的CAD/CAM技術更可直接輸出加工零件的數控代碼程序,直接加工出所需要的零件,從而使人類設計工作步入現代設計階段。此外,步入現代設計階段的另一個特點就是,對產品的設計已不是僅考慮產品本身,並且還要考慮對系統和環境的影響;不僅要考慮技術領域,還要考慮經濟、社會效益;不僅考慮當前,還需考慮長遠發展。例如,汽車設計,不僅要考慮汽車本身的有關技術問題,還需考慮使用者的安全、舒適、操作方便等。此外,還需考慮汽車的燃料供應和污染、車輛存放、道路發展等問題。傳統設計是以經驗總結為基礎,運用長期設計實踐和理論計算而形成的經驗、公式、圖表、設計手冊等作為設計的依據,通過經驗公式、近似系數或類比等方法進行設計。傳統設計在長期運用中得到不斷完善和提高,是符合當代技術水平的有效設計方法。分析傳統的設計過程,可以看出傳統設計的每一個環節都是依靠設計者用手工方式來完成的。首先憑借設計者直接的或間接的經驗,通過類比分析或經驗公式來確定方案,由於方案的擬定很大程度上取決於設計人員的個人經驗,即使同時擬定幾個方案,也難於獲得最優方案。由於分析計算受人工計算條件的限制,只能用靜態的、近似的方法,參考數據偏重於經驗的概括和總結,往往忽略了一些難解或非主要的因素,因而造成設計結果的近似性較大,有時不符合客觀實際。此外,信息處理、經驗或知識的存儲和重復使用方面還沒有一個理想的有效方法,解算和繪圖也多用手工完成,這不僅影響設計速度和設計質量的提高,也難以做到精確和優化的效果。傳統設計對技術與經濟、技術與美學也未能做到很好的統一,使設計帶有一定的局限性。這些都是有待於進一步改進和完善之處。總之,傳統設計方法是一種以靜態分析、近似計算、經驗設計、手工勞動為特徵的設計方法。顯然隨著現代科學技術的飛速發展、生產技術的需要和市場的激烈競爭以及先進設計手段的出現,這種傳統設計方法已難以滿足當今時代的要求,從而迫使設計領域不斷研究和發展新的設計方法和技術。現代設計是過去長期的傳統設計活動的延伸和發展,是傳統設計的深入、豐富和完善。隨著設計實踐經驗的積累,設計理論的發展以及科學技術的進步,特別是計算機技術的高速發展,設計工作包括機械產品的設計過程產生了質的飛躍。為區別過去常用的傳統設計理論與方法,人們把這些新興理論與方法稱為現代設計。「現代設計技術」就是以滿足市場產品的質量、性能、時間、成本、價格綜合效益最有為目的,以計算機輔助設計技術為主體,以知識為依託,以多種科學方法及技術為手段,研究、改進、創造產品活動過程所用到的技術群體的總稱。現代設計不僅指設計方法的更新,也包含了新技術的引入和產品的創新。目前現代設計方法所指的新興理論與方法主要包括優化設計、可靠性設計、設計方法學、計算機輔助設計、動態設計、有限元法、工業藝術造型設計、人機工程、並行工程、價值工程、反求工程設計、模塊化設計、相似性設計、虛擬設計、疲勞設計、三次設計、摩擦學設計、綠色設計等。現代設計與傳統設計的關系如下。①繼承關系。現代設計是過去長期的傳統設計活動的延伸和發展,它繼承了傳統設計的精華,克服了傳統設計的一些不足。②共存於突破的關系。設計方法的發展,都有著時序性、繼承性,兩種方法在一定時間內還會共存。當前的現代設計方法正處在發展之中,可以預見,隨著科學技術的進步必將有新的突破。傳統設計以經驗、試湊、靜態、定性分析、手工勞動為特徵,導致設計周期長,設計質量差,設計費用高,產品缺乏競爭力。隨著現代科學技術的發展,機械產品設計領域中相繼出現了一系列新型理論與方法。這些新興理論與方法統稱為現代設計方法。現代設計主要有下列特點。(1)系統性現代設計方法是邏輯的、系統的設計方法。目前有兩種體系:一種是德國倡導的設計方法學,用從抽象到具體的發散的思維方法,以「功能—原理—結構」框架為模型的橫向變異和縱向綜合,用計算機構造多種方案,評價決策選出最優方案。另一種是美國倡導的創造性設計學,在知識、手段和方法不充分的條件下,運用創造技法,充分發揮想像,進行辯證思維,形成新的構思和設計。傳統設計方法是經驗、類比的設計方法,用收斂性的思維方法,過早地進入具體方案,對功能原理的分析既不充分又不系統,不強調創新,也很難得到最優方案。(2)社會性現代設計將產品設計擴展到整個產品生命周期,發展了「面向X」技術,即在設計過程中同時考慮製造、維修、成本、包裝、運輸、回收、質量等因素。在現代設計開發新產品的整個過程中,從產品的概念形成到報廢處理的全壽命周期中的所有問題,都要以面向社會、面向市場為主導思想考慮解決。設計過程中的功能分析、原理方案確定、結構方案確定、造型方案確定,都要隨時按市場經濟規律進行盡可能定量的市場分析、經濟分析、價值分析。現代設計要求,以並行工程方法指導企業生產管理體制的改革和新產品設計工作,以相似性設計、模塊化設計來更好地滿足廣泛的變化的社會需求,以反求工程技術消化、應用國際先進技術,以摩擦學設計方法來提高機械效率,已三次設計方法來有效地提高產品性能價格比。傳統設計是由技術主管指導設計,設計過程中多為單純注意技術性,設計產品試制後才進行經濟分析、成本核算,很少考慮社會問題。(3)創造性現代設計強調激勵創造沖動,突出創新意識,力主抽象的設計構思,擴展發散的設計思維、多種可行的創新方案,廣泛深入地評價決策,集體運用創造技法,搜索創新工藝試驗,不斷要求最優方案。傳統設計一般是封閉收斂的設計思維,陷入思維定勢,過早地進入定型實體結構,採用經驗類比和直接主官的評價決策。(4)宜人性現代設計強調產品內在質量的實用性,外觀形體的美觀性、藝術性和時代性,在保證產品物質功能的前提下,盡量使用戶產生新穎舒暢等精神感受。他要求從人的生理和心理特徵出發,通過功能分析、界面安排和系統綜合,滿足人一機一環境等之間的協調關系,發揮系統潛力,提高效率。工業藝術造型設計和人機工程提高了產品的精神功能,不斷滿足宜人性要求。傳統設計往往強調產品的物質功能,忽視或不全面考慮精神功能,而僅憑經驗或自發地考慮人一機一環境之間的關系,強調訓練用戶來適應機器的要求。(5)最優化現代設計重視綜合集成,在性能、技術、經濟、製造工藝、使用、環境、可持續發展等各種約束條件之下,在廣泛的學科領域之間,通過計算機以高效率綜合集成為最新科技成果,尋求最優方案和參數。它利用優化設計、人工神經網路演算法和工程遺傳演算法等求出各種工作條件下的最優解。傳統設計屬於自然優化,在設計—評定—再設計的循環中,憑借設計人員的有限知識、經驗和判斷力選取較好方案,因而受任何效率的限制,難以對多變數系統在廣泛影響因素下進行定量優化。(6)動態化現代設計在靜態分析的基礎上,考慮生產中實際存在的多種變化量(如產品工作可靠性問題中的考慮載荷譜、負載率等隨機變數)的影響,進行動態特性的最優化,根據概率論和統計學方法,針對載荷、應力等因素的離散性,用各種運算方法進行可靠性設計,對一些復雜的工程分析問題還可用有限元法、邊界元法等數值解法得到滿意的結果。傳統設計以靜態分析和少變數為主。如機械學中將載荷、應力等因素做集中處理,由此考慮安全系數,這與實際工況相差較遠。(7)設計過程智能化這是指藉助於人工智慧和專家系統技術,由計算機完成一部分原來必須由設計者進行的創造性工作。現代設計認為,各種生物在自己的某些領域里具有極高的水平。仿生學研究如何模仿生物的某些高水平的能力。由於生物中人的只能最高,人能通過知識和信息的獲取、推理和運用,解決極復雜的問題。在已被認識的人的思維規律的基礎上,在智能工程理論的指導下,以計算機為主模仿人的職能活動,能夠設計出高度智能化的產品和系統。傳統設計局部上自發地運用某些仿生規律,但這很難達到高度智能化的要求。(8)設計手段的計算機化和數字化計算機在設計中的應用已從早期的輔助分析、計算機繪圖,發展到現在的優化設計、並行設計、三維建模、設計過程管理、設計製造一體化、模擬和虛擬製造等。特別是網路和資料庫技術的應用,加速

㈡ 求c語言掃描線填充演算法代碼 事成再加100分

早講啊,刪了:(

這有個,一般能擺到的我都不求人
http://tieba..com/f?kz=194814414

pudn上搜唄,多的一塌糊塗

㈢ C語言 矩形填充演算法

#include <stdio.h>
#include <graphics.h>

typedef struct {
int xmin, xmax, ymin, ymax;
} Rectangle;

void FillRectangle(Rectangle *rect, int color) {
int x = 0, y = 0;
for (y = rect->ymin; y <= rect->ymax; y++)
for (x = rect->xmin; x <= rect->xmax; x++) //這里有個分號,應該去掉。
putpixel(x, y, color);
}/* end of FillRectangle() */

int main() {

//declare our color
int color = 0;

//declare our rectangle
Rectangle *rect = (Rectangle *) malloc(sizeof(Rectangle));

if(NULL == rect )
{
printf("allocation memory failed!\n");
return 1;
}
//input the scope
printf("Enter the x-min:\n");
scanf("%d", &rect->xmin);

printf("Enter the x-max:\n");
scanf("%d", &rect->xmax);

printf("Enter the y-min:\n");
scanf("%d", &rect->ymin);

printf("Enter the y-max:\n");
scanf("%d", &rect->ymax);

//input the color
printf("Enter your color:\n");
scanf("%d", &color);

//call our paint function
FillRectangle(rect, color);

return 0;
}

㈣ 區域填充演算法可以填充圓嗎

可以的。在圓規則范圍之內,由圓心至圓上,任意兩條線段(半徑)之間,可以用扇形填充並進行計算。

㈤ 邊緣填充演算法屬於()演算法一種。

邊緣填充演算法屬於A 多邊形掃描轉換

㈥ 填充演算法的種子填充演算法

種子填充演算法又稱為邊界填充演算法。其基本思想是:從多邊形區域的一個內點開始,由內向外用給定的顏色畫點直到邊界為止。如果邊界是以一種顏色指定的,則種子填充演算法可逐個像素地處理直到遇到邊界顏色為止。
種子填充演算法常用四連通域和八連通域技術進行填充操作。
從區域內任意一點出發,通過上、下、左、右四個方向到達區域內的任意像素。用這種方法填充的區域就稱為四連通域;這種填充方法稱為四向連通演算法。
從區域內任意一點出發,通過上、下、左、右、左上、左下、右上和右下八個方向到達區域內的任意像素。用這種方法填充的區域就稱為八連通域;這種填充方法稱為八向連通演算法。
一般來說,八向連通演算法可以填充四向連通區域,而四向連通演算法有時不能填充八向連通區域。例如,八向連通填充演算法能夠正確填充如圖2.4a所示的區域的內部,而四向連通填充演算法只能完成如圖2.4b的部分填充。
圖2.4 四向連通填充演算法
a) 連通域及其內點 b) 填充四連通域
四向連通填充演算法:
a) 種子像素壓入棧中;
b) 如果棧為空,則轉e);否則轉c);
c) 彈出一個像素,並將該像素置成填充色;並判斷該像素相鄰的四連通像素是否為邊界色或已經置成多邊形的填充色,若不是,則將該像素壓入棧;
d) 轉b);
e) 結束。
四向連通填充方法可以用遞歸函數實現如下:
演算法2.3 四向連通遞歸填充演算法:
void BoundaryFill4(int x, int y, long FilledColor, long BoundaryColor)
{
long CurrentColor;
CurrentColor = GetPixelColor(x,y);
if (CurrentColor != BoundaryColor && CurrentColor != FilledColor)
{
SetColor(FilledColor);
SetPixel (x,y);
BoundaryFill4(x+1, y, FilledColor, BoundaryColor);
BoundaryFill4(x-1, y, FilledColor, BoundaryColor);
BoundaryFill4(x, y+1, FilledColor, BoundaryColor);
BoundaryFill4(x, y-1, FilledColor, BoundaryColor);
}
}
上述演算法的優點是非常簡單,缺點是需要大量棧空間來存儲相鄰的點。一個改進的方法就是:通過沿掃描線填充水平像素段,來處理四連通或八連通相鄰點,這樣就僅僅只需要將每個水平像素段的起始位置壓入棧,而不需要將當前位置周圍尚未處理的相鄰像素都壓入棧,從而可以節省大量的棧空間。

java如何實現填充演算法

四向連通遞歸填充演算法:
void BoundaryFill4(int x, int y, long FilledColor, long BoundaryColor)
{
long CurrentColor;
CurrentColor = GetPixelColor(x,y);
if (CurrentColor != BoundaryColor && CurrentColor != FilledColor)
{
SetColor(FilledColor);
SetPixel (x,y);
BoundaryFill4(x+1, y, FilledColor, BoundaryColor);
BoundaryFill4(x-1, y, FilledColor, BoundaryColor);
BoundaryFill4(x, y+1, FilledColor, BoundaryColor);
BoundaryFill4(x, y-1, FilledColor, BoundaryColor);
}
}
該演算法的優點是非常簡單,缺點是需要大量棧空間來存儲相鄰的點。

㈧ java 計算機圖形學 區域填充演算法

你可以定義一個類,這個類的作用就是存放你已經存在的圖畫,在這個類裡面實現畫圖形的方法,然後可以用ArrayList數組實現,最後用個迭代器來實現!!!或者也可以這樣考慮,在調用repaint方法的時候系統會自動調用updata方法,你只要覆蓋updata方法即可!!!~!~~
哎~~~~你不會查API啊,裡面有很多的方法,我也記不住,你自己查一下不就知道拉!!!1

閱讀全文

與填充演算法相關的資料

熱點內容
明茨伯格pdf 瀏覽:440
把網頁存成pdf 瀏覽:265
如何對電腦的d盤加密 瀏覽:98
刀片式伺服器怎麼連接電腦 瀏覽:79
矩陣計算java 瀏覽:231
如何把各銀行app整合 瀏覽:877
方舟生存進化手游版如何建伺服器 瀏覽:288
哪裡購買黃金app 瀏覽:661
中國聯通app優惠購功能在哪裡 瀏覽:227
dream伺服器密碼是什麼 瀏覽:222
程序員自救 瀏覽:486
cmd殺死進程命令 瀏覽:236
ipad激活伺服器地址 瀏覽:452
單片機開始直流電機壓降問題 瀏覽:17
伺服器地址失敗怎麼辦 瀏覽:147
安卓手機怎麼下載蘇聯游戲 瀏覽:132
主教的命令 瀏覽:807
php判斷變數為空 瀏覽:745
你演我猜安卓版本怎麼用 瀏覽:910
已夠app哪裡看 瀏覽:1007