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

正文內(nèi)容

基于android手機(jī)系統(tǒng)的3d桌面主題開發(fā)畢業(yè)論文-wenkub.com

2024-08-23 15:39 本頁面
   

【正文】 正是有了他們的悉心幫助和支持,才使我的畢業(yè)論文工作順利完成,在此向計(jì)算機(jī)學(xué)院的全體老師表示由衷的感謝,感謝他們四年來的辛勤栽培。在四年的本 科課堂學(xué)習(xí)和課外科研項(xiàng)目中,也始終感受到老師的淳淳教導(dǎo)和耐心指導(dǎo),讓我受益匪淺。因此,使用OpenGL ES 開發(fā) 3D 將是一個(gè)不可避免的趨勢, OpenGL ES 將得到更加廣泛地使用。軟件資源發(fā)展速更為迅速,尤其在 Google 推出開源的 Android 系統(tǒng)后,越來越多的軟件市場為用戶提供了更為豐富的軟件資源。如果場景元素越多,元素越復(fù)雜,則繪制速度越慢。 ()。 floor = new Floor(, , alphaFloorTexId)。具體代碼如代碼 。// 用來繪制比較真實(shí)的效果 // 創(chuàng)建半透明反射面 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開發(fā) 38頁 代碼 使用 OpenGL ES 開發(fā)的程序往往耗費(fèi)十分多的資源,而對資源的有效管理顯得十分有必要。 ()。 (90, 1, 0, 0)。 (gl)。 //繪制左大面 ()。本程序中,把對圖像紋理、物體初始化以及參數(shù)計(jì)算放在此階段處理。 (0,*,0)。 (180, 0, 1, 0)。 (gl)。 ()。而是可以通過一個(gè)平面圖形的坐標(biāo)平移和旋轉(zhuǎn)變換來構(gòu)建,得到最終立體圖形。 //關(guān)閉深度檢測,被遮擋的物體會被繪制 } 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開發(fā) 36頁 優(yōu)化方案 由于使用 OpenGL ES 來開發(fā) 3D程序十分耗費(fèi) cpu 計(jì)算資源以及內(nèi)存資源,特別像在手機(jī)這種硬件資源比較匱乏的設(shè)備上運(yùn)行,十分有必要對程序進(jìn)行優(yōu)化,以求達(dá)到使用資源的最小化以及高資源利用率。 // 初始化燈光 效果 initMaterialWhite(gl)。 /*** 4,繪制實(shí)際物體:需打開深度檢測 */ ()。 // 關(guān)燈 // 關(guān)閉深度檢測 ()。 // 開燈 initLight(gl)。 // 繪制反射面 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開發(fā) 35頁 代碼 ()。具體代碼如代碼 。 那么如何解決鏡像過于清晰,缺乏真實(shí)的問題呢? 首先,我們需要引入另外一幅地板紋理圖像,這幅地板圖像與原地板紋理圖像一模一樣,差別只在于這一地板紋理圖像的透明度為 30%,而原地板紋理圖像是不透明的(如圖、圖 )。具體 來說 ,就是把某一像素位置原來的顏色和將要畫上去的顏色,通過某種方式 混合 ,從而實(shí)現(xiàn)特殊的效果。但是,這仍然不可以實(shí)現(xiàn)所需效果。 然后比較所要繪制的圖形的距離和當(dāng)前 Depth Buffer 中的值,如果這個(gè)距離比Depth Buffer 中的值小,表示這個(gè)物體離 攝像機(jī) 較近, OpenGL 則使用這個(gè)距離更新 Depth Buffer。最小值為 0,表示距離 攝像機(jī) 最近的裁剪面的距離。 那么深度檢測是什么呢?其實(shí), OpenGL ES 中 使用深度緩沖( Depth Buffer) 保存了像素與觀測點(diǎn)之間的距離信息 。 那么,如何在場景中繪制鏡像呢?由上面可知:鏡像與實(shí)際物體的不同點(diǎn)只是放置方向不同而已;即在此 3D 場景中,鏡像與實(shí)際物體的 Y坐標(biāo)相反 ① 。 在 OpenGL ES 的 3D 場景中,也存在光照效果,如可以設(shè)置燈光的照射方向、顏色、照射方式(定向光或定位光)。 float moveZ = (normalZ * radius * ) / sum。 index++) { //修正 xz坐標(biāo),使每個(gè)矩形間有一定間隙 float normalX = (positionXs[index] + positionXs[(index + 1) % number]) / 2。 index++) { positionXs[index] = (float) (radius * (Math .toRadians(angleSpan * index)))。 float positionXs[] = new float[number]。 圖 方案修正原理圖 因此最終實(shí)現(xiàn)的效果如圖。 然后,各邊依據(jù)各自的移動向量,計(jì)算出 XZ 坐標(biāo)平移值。我們知道, 正多邊形的所有頂點(diǎn)都在同一個(gè)圓上,如果同時(shí)使圓的半徑擴(kuò)大,而保持多邊形邊長不變地往外移動使得每條邊的兩個(gè)端點(diǎn)也同時(shí)在擴(kuò)大后的圓上,那么多邊形的所有邊就不再兩兩相接,而是相鄰端點(diǎn)間有一定距離 。 圖 N 值等于 2時(shí),兩幅圖像重疊了 圖 N 值較大,最近的圖像遮擋了視線 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開發(fā) 27頁 方案修正 如圖 ,依據(jù)方案二實(shí)現(xiàn)的效果。 360 * (n 1) / N X Z WIDTH 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開發(fā) 26頁 比較方案 其實(shí)無論采取哪種方案,都必須控制 N 值的范圍,否則會出現(xiàn)如圖 ,、圖 理 想情況。 最終, N 棱體側(cè)面中的每幅圖像的三維坐標(biāo)全部確定下來了。 首先,給定浮點(diǎn)型常量 WIDTH 定義正多邊形的邊長。 圖 方案一原理圖 優(yōu)點(diǎn):通過數(shù)學(xué)運(yùn)算簡單,可以輕易得到坐標(biāo)值。 然后,依據(jù)傳遞過來的圖像數(shù)組的長度(即圖像數(shù)量 N)計(jì)算出每幅圖像頂點(diǎn)的 xz 坐標(biāo)。 坐標(biāo)計(jì)算 藍(lán)白色立方體及地板的坐標(biāo)計(jì)算都十分簡單,在這里不一一闡述,讀者可查看具體的工程代碼。 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開發(fā) 22頁 第 4 章 開發(fā) Opengl ES 3D 主題樣式 說明 與概述 圖 Opengl ES 3D 主題樣式 圖 Opengl ES 3D 主題樣式 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開發(fā) 23頁 圖 Opengl ES 3D 主題樣式 如上三圖是 Opengl ES 3D 主題樣式, Opengl ES 3D 主題樣式實(shí)現(xiàn)的效果是當(dāng)用戶進(jìn)行轉(zhuǎn)屏?xí)r, Launcher 使原有的視圖全部隱藏,并進(jìn)入使用 OpenGL ES 繪制的 3D場景。 (bp, 0, 0, null)。 doDraw(canvas, bitmaps[1], new float[] { 0, 0, width, 0, width, height, 0, height }, new float[] { x, 0, width, height * (1 / + value), width, height * (63 / value), x, height })。因此 ,需要對此部分代碼邏輯進(jìn)行相應(yīng)的優(yōu)化。 } ?? 省略部分代碼 } 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開發(fā) 20頁 代碼 其中, doDraw()方 法包含了模擬 3D效果的核心代碼,它定義了如何利用矩陣來修改圖像的大小、方向等。 /*** 獲得 workspace下的相應(yīng)直接子 View圖像,即屏幕截圖 */ (page1).buildDrawingCache()。 } /** 轉(zhuǎn)屏期間,一次獲得圖像便可 以 */ if (!isGetBitmap) { isGetBitmap = true。 page2 = currentScreen。此方法定義了如何在屏幕上繪制 固定的夾角、不同的視覺方向的兩幅圖像 。代碼 Workspace 獲取其下特定的子視圖圖像。 } 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開發(fā) 18頁 第 3 章 開發(fā)模擬 3D 主題樣式 說明與概述 圖 模擬 3D 主題樣式 如圖 是模擬 3D 主題樣式,模擬 3D 主題樣式實(shí)現(xiàn)的效果是通過取得前后兩個(gè)子視圖的圖像,根據(jù)觸摸點(diǎn)的 x 坐標(biāo),在屏幕上以固定的夾角、不同的視覺方向來繪制兩幅圖像,從而模擬真 實(shí)世界的 3D 效果。 (, , )。 // 獲得未使用的紋理對象名稱 int currentTextureId = textures[0]。 ( 2) 設(shè)置紋理坐標(biāo)時(shí)紋理坐標(biāo)的取值范圍不再是 0~1,而是 0~n, n表示希望紋理重復(fù)的次數(shù) ① 。 float shininessMaterial[] = { }。 float diffuseMaterial[] = { , , , }。 將目標(biāo) 面分割為多個(gè)與紋理大小相似的矩形,再將紋理重復(fù)貼到被分割的目標(biāo)上。但 OpenGL ES 中僅支持三角形,因此指定紋理坐標(biāo)時(shí)需要對圖像進(jìn)行切割。 } 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開發(fā) 16頁 發(fā)射紅色光。 float specularParams[] = { , , , }。 // 打開 0號燈 float ambientParams[] = { , , , }。面法向量棱角分明,更適合實(shí)現(xiàn)本身就棱角分明的三維物體,如立方體,四棱錐等。而在OpenGL ES 中不能給一個(gè)頂點(diǎn)分配多個(gè)法向量,因此一般采用的處理方法是此處的頂點(diǎn)屬于幾個(gè)面就在此處放置幾個(gè)位置相同的頂點(diǎn),并為這幾個(gè)頂點(diǎn)分別指定屬于面的法向量。 OpenGL ES 中向量用一個(gè)三元組來表示,格式為 (x, y, z)① 。 在本論文的工程中,光照效果設(shè)置的代碼如代碼 。來自某個(gè)特定位置或方向的任何光很可能具有散射成分。因此,如果散射光從正面照射物體表面,它看起來就顯得更亮一些。 OpenGL ES 允許把與顏色相關(guān)的 3 個(gè)不同參數(shù) GL_AMBIENT、 GL_DIFFUSE、 GL_SPECULAR 與任何特定的光源相關(guān)聯(lián) ① 。 在 OpenGL ES 中,分別有兩種光源產(chǎn)生光照效果:定向光和定位光。 圖 :透視投影 在本論文的工程中,使用透視投影,具體代碼如代碼 。 ① 吳亞峰 蘇亞光 .Android 3D 游戲開發(fā)技術(shù)詳解與典型案例 [M].北京 :電子工業(yè)出版社 .2020:P103– P113 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開發(fā) 13頁 圖 :正交投影 而透視投影屬于非平行投影,可視的空間區(qū)域?yàn)樘菖_。對于 Fragment 在經(jīng)過 Texture Processing, Color Sum ,Fog 等處理并將最終處理結(jié)果存放在內(nèi)存中(稱為 FrameBuffer),最后在屏幕上把圖像顯示出來。 OpenGL ES 管道 大部分圖形系統(tǒng)都可以比作工廠中的裝配線或者稱為管道 (Pipeline)。 /**攔截所有的觸摸事件 */ boolean onTouchEvent(MotionEvent motionEvent)。 所以,通過以上分析,可以得知: 通過改變 Workspace 的 onTouchEvent(MotionEvent)方法處理 事件的方式,就可以改變 Launcher 的轉(zhuǎn)屏方式 。 onTouchEvent(MotionEvent)方法處理事件規(guī)則如下: 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開發(fā) 11頁 如果接收到的是 事件,那么就會把當(dāng)前的觸摸坐標(biāo)記錄為前一次觸摸坐標(biāo)。否則觸摸狀態(tài)保持不變。 Workspace 類接收了 Launcher傳遞過來的各種觸摸事件,當(dāng) Workspace 接收到觸摸事件時(shí),首先交由onInterceptTouchEvent(MotionEvent)處理,處理規(guī)則如下: 如果接收到的是 事件,那么就會把當(dāng)前的觸摸坐標(biāo)記錄為前一次觸摸坐標(biāo)。 如果最終需要處理事件的 視圖 的 onTouchEvent(MotionEvent)返回 true,那么后續(xù)事件將可以繼續(xù)傳遞給該 視圖 的 onTouchEvent(MotionEvent)處理。詳細(xì)處理規(guī)則為首先父視 圖中的 onInterceptTouchEvent(MotionEvent)方法 攔截所有的 觸摸 事件,經(jīng)過判斷后分發(fā)給 子視圖 。 Launcher 界面 模型 的 根視圖 是 DragLayer(繼承自 FrameLayout)。 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開發(fā) 8 頁 圖 工程截圖 在開發(fā) Android 主題前,必須對 Android Launcher 有一個(gè)初步的認(rèn)識。因此,一般開發(fā)此類應(yīng)用程序都必須下載 Android Launcher 源碼。 Java 反射機(jī)制主要提供了以下功能: 在運(yùn)行時(shí)判斷任意一個(gè)對象所屬的類; 在運(yùn)行時(shí)構(gòu)造任意一個(gè)類的對象; 在運(yùn)行時(shí)判斷任意一個(gè)類所具有的成員變量和方法; 在運(yùn)行時(shí)調(diào)用任意一個(gè)對象的方法; 生成動態(tài)代理。 本論文討論與研究 基于 Android 智能手機(jī)操作系統(tǒng)桌面 3d 特效的開發(fā)及其性能優(yōu)化,以期能對 3D開發(fā)有更深入的理解,以便能提出 3D開發(fā)方面的見解
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1