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

正文內(nèi)容

基于android手機(jī)系統(tǒng)的3d桌面主題開(kāi)發(fā)畢業(yè)論文-免費(fèi)閱讀

  

【正文】 同時(shí)要感謝項(xiàng)目開(kāi)發(fā)時(shí)帶領(lǐng)我們的老師,是他們帶著我一步步走進(jìn)實(shí)戰(zhàn)編程的世界,提高了我的開(kāi)發(fā)能力和思考能力。因此在選擇實(shí)現(xiàn)普通 3D 效果時(shí),首選是模擬 3D 效果,因其占用較少的計(jì)算資源。 } 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開(kāi)發(fā) 39頁(yè) OpenGL 的 3D場(chǎng)景中,會(huì)有各種的光照、色彩渲染、紋理粘貼等效果,需要對(duì)屏幕上的每個(gè)像素進(jìn)行 RGBA 計(jì)算,這將占用非常多的內(nèi)存資源及 cpu計(jì)算資源。經(jīng)分析,得出以下結(jié)論: 模擬 3D主題樣式只是對(duì)圖像進(jìn)行矩陣變換處理,計(jì)算量并不高,而且占用的內(nèi)存也很?。ㄏ喈?dāng)于記錄圖像以及矩陣數(shù)據(jù)所需內(nèi)存)。 } public void onSurfaceCreated(GL10 gl, EGLConfig config) { ?? 省略部分代碼 /*** 初始化場(chǎng)景元素 */ // 初始化紋理 floorTexId = initTexture(gl, bitmapFloor)。 //繪制右大面 ()。 (gl)。 ()。 //繪制前小面 ()。一般情況下,首先需要把立方體的每個(gè)點(diǎn)坐標(biāo)都計(jì)算出來(lái),然后在內(nèi)存中創(chuàng)建浮點(diǎn)型緩沖區(qū),并放置立方體的坐標(biāo),最后調(diào)用繪制方法把立方體繪制出來(lái)。 // 繪制旋轉(zhuǎn)體 ()。 // 初始化材質(zhì)為白色 (gl)。 // 設(shè)置源混合因子與目標(biāo)混合因子 (, )。 但美中不足的是,雖然把鏡像繪制出來(lái)了,物體也沒(méi)有懸空的錯(cuò)覺(jué),可是場(chǎng)景依然缺乏真實(shí)效果。 因此,在繪制地面時(shí),由于地面距離攝像機(jī)更近,所以所有 Depth Buffer 值都被更新了,即鏡像不會(huì)被繪制 出來(lái)。深度緩沖算法在 OpenGL ES 3D 繪制的過(guò)程中這個(gè)算法是自動(dòng)被采用的 。 那么,如何解決物體被懸空問(wèn)題呢?這需要使用鏡像技術(shù)繪制場(chǎng)景,使場(chǎng)景中的元素都有在地面上的鏡像。 float sum = (normalX) + (normalZ)。 for (int index = 0。 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開(kāi)發(fā) 28頁(yè) moveZ = PARAM * Z / (X + Z)。所以,還需要使得每個(gè)圖像之間有一定的間隙以區(qū)分不同的圖像。另外,無(wú)論 N值如何變化,用戶(hù)所看到的圖像大小都不會(huì)產(chǎn)生太大的變化,大小幾乎一樣。當(dāng) N 值較大時(shí),圖像太小,不清晰;當(dāng) N 值較大時(shí),圖像太大,遮擋了所有視線。目前有兩種解決方案,如下: 方案一 該方案思路依據(jù)是正 N 棱體的橫截面是一個(gè)正 N 邊形,正 N邊形的每個(gè)頂點(diǎn)一定在同一個(gè)圓上,因此 只要確定了該圓的圓心和半徑以及正 N棱體的高度,就可以確定整個(gè) N棱 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開(kāi)發(fā) 24頁(yè) 體上所有點(diǎn)的坐標(biāo) 。 } 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開(kāi)發(fā) 21頁(yè) 圖像。因此,沒(méi)必要在每次轉(zhuǎn)屏前都獲取 Workspace 中所有子視圖的圖像。 (page2).buildDrawingCache()。 page2 = (currentScreen + 1) % screenCount。即觸發(fā)其調(diào)用dispatchDraw(Canvas)方法 ① 。 (, 0, bitmap, 0)。 代碼 ① 吳亞峰 蘇亞光 .Android 3D 游戲開(kāi)發(fā)技術(shù)詳解與典型案例 [M].北京 :電子工業(yè)出版社 .2020:P170– P171 /** 獲得紋理圖 ID*/ private int initTexture(GL10 gl, Bitmap bitmap) { int textures[] = new int[1]。 float specularMaterial[] = { , , , }。對(duì)于二維的紋理圖,紋理坐標(biāo)在 S 和 T 方向上的范圍是 ~,但是進(jìn)行紋理貼圖的物體沒(méi)有坐標(biāo)范圍的限制。 float positionParams[] = { cameraX, 0, cameraZ, 0 }。 物體的材質(zhì) 設(shè)置材質(zhì)的主要工作就是設(shè)置材質(zhì)對(duì)于環(huán)境光、散射光、鏡面光的發(fā)射能力,也就是說(shuō)此安置能反射什么顏色的光。 面法向量是指當(dāng)立體物體中一個(gè)頂點(diǎn)位于某個(gè)三角形面上時(shí),為其分配屬于面的法向量。鏡面光肉眼看起來(lái)是物體上最亮的地方。在默認(rèn)情況下,不存在環(huán)境光。如果沒(méi)有光照,絕大多數(shù)物體看上去甚至不像三維物體。 所謂的正交投影是平行投影的一種,觀察者的實(shí)現(xiàn)是平行的,不產(chǎn)生真實(shí)世界遠(yuǎn)大近小的透視效果。/**釋放資源 */ } 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開(kāi)發(fā) 12頁(yè) 圖 OpenGL 和 OpenGL ES 之間的關(guān)系圖 OpenGL ES(OpenGL for Embedded Systems)是 OpenGL 三維圖形 API 的子集, 定義了一個(gè)在移動(dòng)平臺(tái)上能夠支持 OpenGL 最基本功能的精簡(jiǎn)標(biāo)準(zhǔn),以適應(yīng)如手機(jī), PDA或其它消費(fèi)者移動(dòng)終端的顯示系統(tǒng) 。 如果接收到的是 事件,那么就把觸摸狀態(tài)改為 RESET,并繪制當(dāng)前滑動(dòng)到達(dá)的子視圖。 如果接收到的是 事件,那么就計(jì)算當(dāng)前觸摸坐標(biāo)與前一次觸摸坐標(biāo)是否超出了某個(gè)值。 如果該 父視圖 的 onInterceptTouchEvent(MotionEvent)在接收到 事件處理完成之后返回 true,那么后續(xù)的, 等事件將不再傳遞給 該父視圖的onInterceptTouchEvent(MotionEvent),而是和 事件 一起 傳遞給該 父視圖 的 onTouchEvent(MotionEvent)處理, 而 目標(biāo) 子視圖 將接收不到任何事件。因此, Launcher 中的界面元素大都是自定義視圖。利用反射機(jī)制實(shí)例化對(duì)象的主要代碼為代碼。所以如何在手機(jī)系統(tǒng)上展現(xiàn) 3D 效果是一個(gè)十分值得研究的問(wèn)題。特別是移動(dòng)互聯(lián)網(wǎng)的高速發(fā)展,帶領(lǐng)人們進(jìn)入了“智能手機(jī)”時(shí)代。 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開(kāi)發(fā) 1 頁(yè) 論文題目 : 基于 Android手機(jī)系統(tǒng)的 3D 桌面主題開(kāi)發(fā) 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開(kāi)發(fā) 2 頁(yè) 中文摘要 2020 年, google 公司 ① 提出的安卓( Android) ② 智能手機(jī)操作系統(tǒng),風(fēng)靡全球,立即引發(fā)基于該系統(tǒng)的軟件開(kāi)發(fā)熱潮。 2020 年, google 公司提出的安卓智能手機(jī)操作系統(tǒng),風(fēng)靡全球,立即引發(fā)基于該系統(tǒng)的軟件開(kāi)發(fā)熱潮,尤其是針對(duì)改善交互模式的手機(jī)主題開(kāi)發(fā)。另外對(duì)于 OpenGL ES 應(yīng)用程序的性能優(yōu)化更是一個(gè)值得研究的領(lǐng)域。 代碼 Android Launcher 目前,由于 Android 桌面主題應(yīng)用程序,與普通的應(yīng)用程序不同,它是在系統(tǒng)啟動(dòng)時(shí)由系統(tǒng)進(jìn)程加載;加之,其內(nèi)部實(shí)現(xiàn)原理十分復(fù)雜,對(duì)觸摸事件響應(yīng)機(jī)制更是復(fù)雜。所以在開(kāi)發(fā) Launcher之前必須更深入地了解其界面模型(如圖 )。 如果最終需要處理事件的 視圖 的 onTouchEvent(MotionEvent)返回 false,那么該觸摸 事件將被傳遞至其上一層次的 視圖 的 onTouchEvent(MotionEvent)處理。如果超出了,則把觸 摸狀態(tài)改為 SCROLLING。 最后,返回 true,即把當(dāng)前及后 續(xù)事件傳遞給本方法處理。該 API 由 Khronos 集團(tuán)定義推廣, Khronos 是一個(gè)圖形軟硬件行業(yè)協(xié)會(huì),該協(xié)會(huì)主要關(guān)注圖形和多媒體方面的開(kāi)放標(biāo)準(zhǔn)。在正交投影中,可視的空間區(qū)域?yàn)殚L(zhǎng)方體 (正交投影產(chǎn)生的效果如圖 )。因此,光照對(duì)于三維物體來(lái)說(shuō)十分重要。 diffuse 即散射光,散射光來(lái)自于某個(gè)方向。當(dāng)然這與物體本身也有關(guān)系,如果是類(lèi)似鏡子的、光澤的金屬等,則光線為全反射,整個(gè)物體都很明亮,而對(duì)于像石膏雕像地毯等,則幾乎不存在鏡面成分。但很多情況下一個(gè)頂點(diǎn)并不只屬于 一個(gè)三角形面,而可能屬于多個(gè)三角形面。例如,白色的材質(zhì)能發(fā)射所有顏色的光,紅色的材質(zhì)只能 ① 吳亞峰 蘇亞光 .Android 3D 游戲開(kāi)發(fā)技術(shù)詳解與典型案例 [M].北京 :電子工業(yè)出版社 .2020:P121 ② 吳亞峰 蘇亞光 .Android 3D 游戲開(kāi)發(fā)技術(shù)詳解與典型案例 [M].北京 :電子工業(yè)出版社 .2020:P143– P146 ()。 // 最后的參數(shù)表示定 向光( 0)或定位光( 1) (, , positionParams, 0)。 但在應(yīng)用開(kāi)發(fā)中,有時(shí)候需要把一幅紋理圖拉伸或縮小到目標(biāo)面上,在目標(biāo)面很大的情況下有三種解決方案: 將紋理拉大,這樣的缺點(diǎn)是紋理顯得非常不清楚,失去了原來(lái)清晰的效果,甚至可能變形。 //高光材質(zhì)為白色 (, ,specularMaterial, 0)。 (1, textures, 0)。 return currentTextureId。當(dāng)方法 dispatchDraw(Canvas)檢測(cè)到當(dāng)前的觸摸狀態(tài)為SCROLLING 時(shí),就立即調(diào)用自定義方法 startRotate(Canvas, float)。} isGetPage = true。 bitmaps[1] = (page2).getDrawingCache()。所以,在獲取子視圖圖像時(shí),定義了一個(gè)布爾類(lèi)型的標(biāo)識(shí)量 isGetBitmap,用于判斷是否已經(jīng)獲取了圖像,如已獲取,則不再獲取/** * 轉(zhuǎn)屏?xí)r,繪制模擬 3d圖形 .繪制兩個(gè)有一定角度的屏幕 */ private void startRotate(Canvas canvas, float x) { ?? 省略部分代碼 doDraw(canvas, bitmaps[0],new float[] { 0, 0, width, 0, width, height, 0, height }, new float[] { 0, height * (1 / value), x, 0, x, height, 0, height * (6 / + value) })。因此,即使每次轉(zhuǎn)屏 calculateRotate()方法 會(huì)被多次調(diào)用,但只一次性獲取了兩幅圖像,之后不再獲取,減少了 cpu的計(jì)算量和內(nèi)存的占用量。 首先,給定浮點(diǎn)型常量 RADIUS 定義圓的半徑。 方案二 該方案思路依據(jù)是正 N 棱體的橫截面是一個(gè)正 N 邊形,正 N邊形的每個(gè)頂點(diǎn)一定在同360 * (n 1) / N X Z RADIUS 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開(kāi)發(fā) 25頁(yè) 一個(gè)圓上,因此可以依據(jù)正多邊形的邊長(zhǎng)計(jì)算得到圓半徑,所以 只要確定了正多邊形的邊長(zhǎng)和圓心坐標(biāo)以及 N棱體的高度,就可以確定整個(gè) N棱體上所有點(diǎn)的坐標(biāo) 。 缺點(diǎn):圓半徑隨著 N值增大而增大;當(dāng) N值較大時(shí),可能導(dǎo)致用戶(hù)看不到 N 棱體中較遠(yuǎn)的側(cè)面,而最近的側(cè)面又擋住了所有視線。 圖 方案二實(shí)現(xiàn)的效果 如何使得每幅圖像之間有一定間隙呢?這需要依據(jù)正多邊形的特點(diǎn),巧妙利用了相關(guān)的數(shù)學(xué)知識(shí)。 注: moveX、 moveZ 是 X、 Z坐標(biāo)的平移值; PARAM 是常量參數(shù); X、 Z是移動(dòng)向量的 X、 Z坐標(biāo)。 index number。//計(jì)算 xz平移量 float moveX = (normalX * radius * ) / sum。鏡像與實(shí)際物體顏色、大小相等,放置方向卻相反,由于鏡像與實(shí)際物體存在一個(gè)接觸面,而接觸面剛好與地面重合,因此產(chǎn)生的效果更真實(shí)。 這個(gè)算法的基本步驟如下: 將 Depth Buffer 中的值使用最大值清空整個(gè) Depth Buffer,這個(gè)最大值缺省為 ,為距離 攝像機(jī) 最遠(yuǎn)的裁剪的距離。 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開(kāi)發(fā) 33頁(yè) 那么如何使鏡像能夠不被遮擋而被繪制出來(lái)呢?那就需要在繪制地面時(shí),關(guān)閉深度檢測(cè)。原因是:鏡像被繪制得過(guò)于清晰細(xì)致,而現(xiàn)實(shí)生活中的倒影都是十分模糊的,并不像上圖那樣高度清晰。 (gl)。 // 繪制 ()。 // 開(kāi)燈 initLight(gl)。但實(shí)際上,對(duì)于規(guī)則的物體,在實(shí)現(xiàn)上不必要計(jì)算出其每個(gè)頂點(diǎn)的坐標(biāo)。 (0, 0, *)。 //繪制上大面 ()。 ()。 (*,0,0)。 alphaFloorTexId = initTexture(gl, bitmapAlphaFloor)。 使用 OpenGL ES 繪制 3D場(chǎng)景,由于屏幕本身是二維的,因此把三維場(chǎng)景映射到二維屏幕上,需要大量的數(shù)學(xué)運(yùn)算,因而加重了 cpu 的負(fù)載。 在 OpenGL ES 的 3D 場(chǎng)景中,其繪制速度還與場(chǎng)景中元素的多少及每個(gè)元素的復(fù)雜性有關(guān)。但隨著用戶(hù)對(duì)體驗(yàn)提出越來(lái)越高的要求個(gè),開(kāi)發(fā)更加
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1