freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于安卓的繪圖軟件開發(fā)與設(shè)計(jì)論文-文庫吧資料

2024-11-16 04:47本頁面
  

【正文】 float y, float radius, float color_r, float color_g, float color_b, float opaque, float hardness, float color_a, float aspect_ratio, float angle, float lock_alpha, float colorize)該方法用于將當(dāng)前計(jì)算好的筆觸參數(shù)和當(dāng)前筆觸所在畫布中包含的tile的位置保存到一個(gè)名為OperationQueue的map中,在以后需要繪制筆觸時(shí)將其參數(shù)彈出并進(jìn)行使用。在MyPaint中,出于性能考慮,筆觸的坐標(biāo)、壓感、時(shí)間都是根據(jù)相鄰兩次系統(tǒng)回調(diào)時(shí)給出的參數(shù)進(jìn)行線性插值來進(jìn)行計(jì)算的。c) step_declination、step_ascension表示的意義和上文介紹的函數(shù)mypaint_brush_stroke_to中的xtilt,ytilt意義是相同的。a) step_dx、step_dy、step_dpressure表示需要當(dāng)前筆觸的x、y坐標(biāo)和筆壓。該方法內(nèi)的參數(shù)和mypaint_brush_stroke_to中的參數(shù)意義一致。e) ditme為兩次接受到系統(tǒng)回調(diào)的時(shí)間間隔。d) xtilt,ytilt表示當(dāng)前筆刷的傾斜角度和旋轉(zhuǎn)角度,在一些PC高級(jí)手繪板中會(huì)有這兩個(gè)參數(shù)提供。在一些PC桌面設(shè)備中,會(huì)有一些手繪板設(shè)備,當(dāng)用戶在繪畫過程中,會(huì)向系統(tǒng)提供當(dāng)前用戶繪畫時(shí)筆的壓力感應(yīng)參數(shù)。b) x,y表示要筆畫要繪制到的位置的坐標(biāo)。1. int mypaint_brush_stroke_to(MyPaintBrush *self, MyPaintSurface *surface, float x, float y, float pressure, float xtilt, float ytilt, double dtime);當(dāng)用戶在畫布上每次移動(dòng)時(shí),外部設(shè)備會(huì)有回調(diào)函數(shù)出發(fā),在每次系統(tǒng)回調(diào)這些函數(shù)時(shí)調(diào)用mypaint_brush_stroke_to這個(gè)方法,此方法的意義是將筆刷從上一次繪制的點(diǎn)繪制到當(dāng)前位置,形成一個(gè)筆畫。 筆刷引擎的工作流程 MyPaint筆刷引擎主要工作函數(shù)MyPaint筆刷引擎的主要作用是根據(jù)用戶的輸入的外部參數(shù)實(shí)時(shí)渲染筆觸。:圖 橢圓形筆觸的繪畫效果 本節(jié)主要介紹了MyPaint的基本渲染單元——筆觸,以及它是如何被定義的。 else opa = hardness/(1hardness)*(1dd)。 dd = (dyr*dyr + dxr*dxr) / (radius*radius)。 for each pixel: dx = x dy = y dyr = (dy*csdx*sn)*aspect_ratio。計(jì)算橢圓形筆觸透明度的偽代碼如下: cs = cos(angle/360*2*pi)。angle為當(dāng)前橢圓旋轉(zhuǎn)角度,angle等于β。參數(shù)aspect_ration和angle被用來定義一個(gè)橢圓形的筆觸。:圖 筆觸透明度在不同hardness和d的分布 hardness小的筆觸可以用來繪制一些有噴槍效果比刷,具有邊界模糊的效果。:圖 hardness與opaque關(guān)系圖 ,d表示離筆觸中心點(diǎn)的距離,筆觸的透明度隨著離中心點(diǎn)的距離平方的變化呈兩段線性減小的改變。2. opaque表示筆觸中心點(diǎn)的透明度。在繪畫過程中,一個(gè)筆畫是由許多連續(xù)的筆觸構(gòu)成。 Settings數(shù)組保存從筆刷的json文件中解析出來的參數(shù),基本參數(shù)保存在base_value中,其他的一些input參數(shù)保存在ControlPoints中,這些input參數(shù)會(huì)和當(dāng)前筆觸的參數(shù)進(jìn)行線性運(yùn)算,運(yùn)算結(jié)果保存到數(shù)組settings_value中。 RngDouble是一個(gè)隨機(jī)數(shù)生成器。:圖 MyPaintBrush結(jié)構(gòu)圖 states數(shù)組保存當(dāng)前筆觸在畫布中的狀態(tài),states中的內(nèi)容會(huì)隨著筆畫的變化而變化。8. elliptical_dab_ratio:表示單個(gè)筆觸的寬和長(zhǎng)的比例。6. color_h、color_s、color_v:?jiǎn)蝹€(gè)筆觸顏色的H、S、V分量。4. offset_by_random:?jiǎn)蝹€(gè)筆觸的位置隨機(jī)偏移量。2. hardness:表示筆觸的硬度,即筆刷中心深色區(qū)域的大小。在MyPaint中一共包含了42個(gè)筆刷參數(shù),這里主要介紹其中常用的部分參數(shù)意義,下文提到的筆觸概念將在下節(jié)中詳細(xì)介紹。 destroy作用為釋放所用到的數(shù)據(jù)結(jié)構(gòu)的內(nèi)存。它被定義為一個(gè)函數(shù)指針,其函數(shù)原型為:int mypaint_surface_draw_dab(MyPaintSurface *self, float x, float y, float radius, float color_r, float color_g, float color_b, float opaque, float hardness, float alpha_eraser, float aspect_ratio, float angle, float lock_alpha, float colorize )。c) _MyPaintSurface _MyPaintSurface是一個(gè)抽象數(shù)據(jù)結(jié)構(gòu),他定義了一些筆刷引擎中基本的數(shù)據(jù)處理方法draw_dab和get_color,并在_MyPaintTiledSurface中進(jìn)行了實(shí)現(xiàn)。 _OperationQueue為一個(gè)map,它的鍵為需要更新的tile在畫布中的x,y坐標(biāo),值為所操作的tile需要的外部參數(shù)。當(dāng)用戶需要操作某個(gè)tile內(nèi)的數(shù)據(jù)時(shí),調(diào)用tile_request_start,更新tile_buffer指針指向的位置,使其指向當(dāng)前需要更新的tile區(qū)域的首位置。 :圖 MyPaintFixedTiledSurface數(shù)據(jù)抽象形式b) _MyPaintTiledSurface _MyPaintTiledSurface的職責(zé)為響應(yīng)外部請(qǐng)求。tiles_width和tiles_height分別表示畫布寬含有小正方形的個(gè)數(shù)和高含有的個(gè)數(shù)。a) MyPaintFixedTiledSurface MyPaintFixedTiledSurface維護(hù)了整個(gè)畫布區(qū)域的數(shù)據(jù),該數(shù)據(jù)主要包含用戶繪畫的內(nèi)容,畫布數(shù)據(jù)為寬為width,長(zhǎng)為height,數(shù)據(jù)類型為uint16_t的矩形區(qū)域,這塊數(shù)據(jù)由uint16_t 類型的指針tile_buffer進(jìn)行維護(hù)。 MyPaintFixedTiledSurface結(jié)構(gòu)介紹 :圖 MyPaintFixedTiledSurface組成結(jié)構(gòu)在MyPaintFixedTiledSurface中,包含了名為_MyPaintTiledSurface的結(jié)構(gòu)體,而_MyPaintTiledSurface結(jié)構(gòu)體中又包含了_MyPaintSurface這個(gè)結(jié)構(gòu)體。圖 MyPaint常見的一些筆刷效果: MyPaint筆刷引擎主要結(jié)構(gòu)體介紹在MyPaint筆刷引擎中,含有兩個(gè)主要的結(jié)構(gòu),一個(gè)為MyPaintBrush,它負(fù)責(zé)更新當(dāng)前筆刷參數(shù)和加載新的筆刷參數(shù),另一個(gè)為MyPaintFixedTiledSurface,它主要維護(hù)當(dāng)前繪畫區(qū)域中數(shù)據(jù)。他支持豐富的模擬自然繪畫的筆刷,性能非常的好,而且它可以很好的支持筆的壓力和角度,能最大程度上模擬出自然繪畫的效果。 本章小結(jié)本章首先對(duì)Android的系統(tǒng)架構(gòu)進(jìn)行詳細(xì)的層次化分析,對(duì)Android中常用的幾個(gè)組件進(jìn)行簡(jiǎn)單的介紹,特別對(duì)Android的Activity進(jìn)行詳細(xì)介紹,介紹了其生命周期和他的Activity棧結(jié)構(gòu)。()來進(jìn)行注冊(cè)。 BroadcastReceiverBroadcastReceiver是用于接收廣播的模塊,廣播是一種同時(shí)通知多個(gè)對(duì)象的事件通知機(jī)制[6]。b) 它沒有UI界面,但是特殊情況可以使用WindowManager創(chuàng)建窗口。它可以長(zhǎng)期在后臺(tái)運(yùn)行,進(jìn)程優(yōu)先級(jí)較高,不會(huì)輕易被系統(tǒng)回收,也不受Activity切換的影響。g) onDestroy()方法: 在Activity被銷毀前,該函數(shù)被毀掉,主要用于釋放當(dāng)前Activity的資源,表示該Activity即將消失。調(diào)用后,此時(shí)的Activity位于Activity棧的棧頂。該方法需要被非??焖俚膱?zhí)行,因?yàn)橹钡竭@個(gè)方法執(zhí)行完畢以前,下一個(gè)Activity都不能被恢復(fù)。c) onRestart()方法:當(dāng)Activity從停止?fàn)顟B(tài)進(jìn)入活動(dòng)狀態(tài)前,調(diào)用該函數(shù),該方法總是在onStart()方法以后執(zhí)行。在Eclipse中,創(chuàng)建Android項(xiàng)目時(shí),會(huì)自動(dòng)創(chuàng)建一個(gè)Activity,在這個(gè)Activity中,默認(rèn)重寫了onCreat(Bundle savedInstanceState)方法,用于該Activity初始化。他具有自己的生命周期。即Activity被殺掉以后和啟動(dòng)之前,要手動(dòng)終止Activity可以在程序中調(diào)用finish方法。處于停止?fàn)顟B(tài)的Activity會(huì)很容易被系統(tǒng)回收,所以處于停止?fàn)顟B(tài)時(shí),一定要保存當(dāng)前的數(shù)據(jù)變量和當(dāng)前的界面狀態(tài),否則一但Activity退出或者關(guān)閉,當(dāng)前的數(shù)據(jù)和界面狀態(tài)就會(huì)失去。b) 暫停狀態(tài):當(dāng)Activity被另一個(gè)透明或者Dialog樣式的Activity覆蓋部分遮擋時(shí),此時(shí)它依然和窗口管理器相連,系統(tǒng)會(huì)繼續(xù)維護(hù)其內(nèi)部狀態(tài),但是他已失去焦點(diǎn),不能進(jìn)行UI交互。當(dāng)系統(tǒng)資源不足時(shí),被壓入棧的Activity可能會(huì)被系統(tǒng)殺掉。當(dāng)一個(gè)Activity不需要時(shí),也可以將其從歷史堆棧中移除。當(dāng)一個(gè)新的Activity出現(xiàn)時(shí),前一個(gè)Activity成為中斷狀態(tài)并被放入到一個(gè)堆棧當(dāng)中。由于Activity是整個(gè)Android幾大組件中最重要的一個(gè),下面將進(jìn)行詳細(xì)介紹。 ,它用于配置一個(gè)應(yīng)用程序運(yùn)行時(shí)所需要的一些聲明,這些聲明包含程序所需的權(quán)限、Activity信息等,每個(gè)android程序都必須含有一個(gè)manifest文件。 Android應(yīng)用組件通常Android主要由以下幾個(gè)組件來構(gòu)建一個(gè)完整的Android程序。Android本身是一種疊層架構(gòu),它主要分成三層:操作系統(tǒng)、中間件、應(yīng)用程序。這其中包括客戶端、短信、日歷、地圖、瀏覽器、聯(lián)系人管理程序等等。(4) 第四層——應(yīng)用程序?qū)?Applications)。f) Resource Manager:管理應(yīng)用程序中的所有資源文件,它可以根據(jù)不同的設(shè)備分辨率、大小、方向、當(dāng)前語言來加載不同資源文件,提高了Android的自適應(yīng)性[6]。d) View System:它是Android界面中最基本的組件,大部分高級(jí)組件都是基于View進(jìn)行改造,它決定了應(yīng)用程序的樣式。b) Window Manager:管理Android系統(tǒng)中的所有窗口程序。應(yīng)用程序框架是Android平臺(tái)專門為應(yīng)用程序開發(fā)而進(jìn)行設(shè)計(jì)的,他提供了豐富的應(yīng)用程序開發(fā)所需要的API,為開發(fā)者進(jìn)行快速敏捷開發(fā)Android軟件提供了可能。當(dāng)Java程序通過編譯。b) Dalvik虛擬機(jī):Google針對(duì)移動(dòng)平臺(tái)對(duì)Java虛擬機(jī)進(jìn)行了優(yōu)化,形成了Dalvik虛擬機(jī),它更加快速和高效,更適合移動(dòng)設(shè)備。 Android應(yīng)用程序在Android RunTime中執(zhí)行,其運(yùn)行時(shí)分為核心庫和優(yōu)化過的Java虛擬機(jī)Dalvik。i) SGL:Skia圖形庫,底層的2D圖形引擎。g) WebKit:一套網(wǎng)頁瀏覽器的軟件引擎。e) FreeType:提供點(diǎn)陣字與向量字的描繪與顯示。d) OpenGL|ES:根據(jù)OpenGL ES ,該庫可以將硬件的3D功能進(jìn)行最佳化處理和現(xiàn)實(shí),能夠很好的使用硬件加速或者優(yōu)化后的軟件加速。b) Media Framework:以O(shè)penCore為基礎(chǔ)進(jìn)行開發(fā),主要用于對(duì)多媒體功能的支持。(2) 第二層本地框架和Java運(yùn)行環(huán)境(LIBRARIES 和 ANDROID RUNTIME)。:圖 Android系統(tǒng)架構(gòu)圖(1) 第一層Linux內(nèi)核(Linux Kernel) Android操作系統(tǒng)的內(nèi)核從Linux的一個(gè)分支而來,Google針對(duì)移動(dòng)平臺(tái)做了部分優(yōu)化,該Linux層主要負(fù)責(zé)對(duì)上層的Dalvi虛擬機(jī)進(jìn)行調(diào)度。2浙江大學(xué)碩士學(xué)位論文 第2章Error! No text of specified style in document.第2章 Android平臺(tái)整體結(jié)構(gòu)分析為了進(jìn)行Android平臺(tái)上的軟件開發(fā),就必須要對(duì)Android平臺(tái)的架構(gòu)和各大組建進(jìn)行分析,本章會(huì)對(duì)主要組件逐個(gè)進(jìn)行分析。3. 在上述工作基礎(chǔ)上編寫Android繪圖軟件界面程序,處理Android事件的響應(yīng)邏輯,實(shí)現(xiàn)了Android平臺(tái)上的繪圖軟件開發(fā)。2. 提出一種Android底層模塊開發(fā)方法,并利用此方法和FFmpeg(開源視頻編解碼庫)來進(jìn)行用戶繪畫過程的錄制,將其編碼成MP4格式的視頻文件。 論文
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1