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

正文內(nèi)容

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

  

【正文】 最近的圖像遮擋了視線 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開(kāi)發(fā) 27頁(yè) 方案修正 如圖 ,依據(jù)方案二實(shí)現(xiàn)的效果。 最終, N 棱體側(cè)面中的每幅圖像的三維坐標(biāo)全部確定下來(lái)了。 圖 方案一原理圖 優(yōu)點(diǎn):通過(guò)數(shù)學(xué)運(yùn)算簡(jiǎn)單,可以輕易得到坐標(biāo)值。 坐標(biāo)計(jì)算 藍(lán)白色立方體及地板的坐標(biāo)計(jì)算都十分簡(jiǎn)單,在這里不一一闡述,讀者可查看具體的工程代碼。 (bp, 0, 0, null)。因此 ,需要對(duì)此部分代碼邏輯進(jìn)行相應(yīng)的優(yōu)化。 /*** 獲得 workspace下的相應(yīng)直接子 View圖像,即屏幕截圖 */ (page1).buildDrawingCache()。 page2 = currentScreen。代碼 Workspace 獲取其下特定的子視圖圖像。 (, , )。 ( 2) 設(shè)置紋理坐標(biāo)時(shí)紋理坐標(biāo)的取值范圍不再是 0~1,而是 0~n, n表示希望紋理重復(fù)的次數(shù) ① 。 float diffuseMaterial[] = { , , , }。但 OpenGL ES 中僅支持三角形,因此指定紋理坐標(biāo)時(shí)需要對(duì)圖像進(jìn)行切割。 float specularParams[] = { , , , }。面法向量棱角分明,更適合實(shí)現(xiàn)本身就棱角分明的三維物體,如立方體,四棱錐等。 OpenGL ES 中向量用一個(gè)三元組來(lái)表示,格式為 (x, y, z)① 。來(lái)自某個(gè)特定位置或方向的任何光很可能具有散射成分。 OpenGL ES 允許把與顏色相關(guān)的 3 個(gè)不同參數(shù) GL_AMBIENT、 GL_DIFFUSE、 GL_SPECULAR 與任何特定的光源相關(guān)聯(lián) ① 。 圖 :透視投影 在本論文的工程中,使用透視投影,具體代碼如代碼 。對(duì)于 Fragment 在經(jīng)過(guò) Texture Processing, Color Sum ,Fog 等處理并將最終處理結(jié)果存放在內(nèi)存中(稱為 FrameBuffer),最后在屏幕上把圖像顯示出來(lái)。 /**攔截所有的觸摸事件 */ boolean onTouchEvent(MotionEvent motionEvent)。 onTouchEvent(MotionEvent)方法處理事件規(guī)則如下: 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開(kāi)發(fā) 11頁(yè) 如果接收到的是 事件,那么就會(huì)把當(dāng)前的觸摸坐標(biāo)記錄為前一次觸摸坐標(biāo)。 Workspace 類接收了 Launcher傳遞過(guò)來(lái)的各種觸摸事件,當(dāng) Workspace 接收到觸摸事件時(shí),首先交由onInterceptTouchEvent(MotionEvent)處理,處理規(guī)則如下: 如果接收到的是 事件,那么就會(huì)把當(dāng)前的觸摸坐標(biāo)記錄為前一次觸摸坐標(biāo)。詳細(xì)處理規(guī)則為首先父視 圖中的 onInterceptTouchEvent(MotionEvent)方法 攔截所有的 觸摸 事件,經(jīng)過(guò)判斷后分發(fā)給 子視圖 。 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開(kāi)發(fā) 8 頁(yè) 圖 工程截圖 在開(kāi)發(fā) Android 主題前,必須對(duì) Android Launcher 有一個(gè)初步的認(rèn)識(shí)。 Java 反射機(jī)制主要提供了以下功能: 在運(yùn)行時(shí)判斷任意一個(gè)對(duì)象所屬的類; 在運(yùn)行時(shí)構(gòu)造任意一個(gè)類的對(duì)象; 在運(yùn)行時(shí)判斷任意一個(gè)類所具有的成員變量和方法; 在運(yùn)行時(shí)調(diào)用任意一個(gè)對(duì)象的方法; 生成動(dòng)態(tài)代理。 實(shí)際上,在手機(jī)這種計(jì)算能力仍然十分有限的設(shè)備上,繪制真正的 3D場(chǎng)景(使用 OpenGL ES標(biāo)準(zhǔn))的確存在很大的瓶頸。而基于 OpenGL ES 的 3D主題樣式則通過(guò)在 3D場(chǎng)景上繪制正 N 棱體,棱體的每個(gè)側(cè)面是相對(duì)應(yīng)的 Workspace 子視圖圖像,用戶通過(guò)選擇不同的側(cè)面來(lái)進(jìn)入不同的子視圖。 模擬 3D與基于 OpenGL ES 的 3D主題樣式都是通過(guò)修改 Android Launcher 源碼 中的Workspace 類來(lái)實(shí)現(xiàn)。如在移動(dòng)設(shè)備上實(shí)現(xiàn)各種 3D 效果等。 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開(kāi)發(fā) 7 頁(yè) 第 2 章 關(guān)鍵技術(shù)介紹 JAVA 反射機(jī)制 JAVA 反射機(jī)制是在運(yùn)行狀態(tài)中,對(duì)于任意一個(gè)類,都能夠獲知此類的所有屬性和方法;對(duì)于任意一個(gè)對(duì)象,都能夠調(diào)用它的任意方法;這種動(dòng)態(tài)獲取信息以及動(dòng)態(tài)調(diào)用對(duì)象方法的功能稱為 JAVA 語(yǔ)言的反射機(jī)制。 通過(guò)在 Android 官網(wǎng)上下載 Android Launcher 源碼包,并解壓到 myeclipse 工程目錄下,引入工程并添加相應(yīng)的 jar 包,消除錯(cuò)誤后,便可以進(jìn)行開(kāi)發(fā) (工程截圖 如圖 )。而 在 根視圖 上workspace 占了絕大部分的空間 。 Launcher 開(kāi)發(fā) 通過(guò)上面的介紹,對(duì) Launcher 有了初步的了解。 如果接收到的是 事件,那么就把觸摸狀態(tài)改為 RESET,并更新壁紙。為此,定義一個(gè)主題樣式接口,如代碼 。前一道的輸出作為下道工序的輸入。觀察者的實(shí)現(xiàn)在遠(yuǎn)處是相交的,視線相交即為滅點(diǎn)。定向光對(duì)應(yīng)的是光源在無(wú)窮遠(yuǎn)處的光,定向光在空間中的所有位置方向都是相同的。反之,如果它斜著從物體表面掠過(guò),則看起來(lái)就顯得暗一些。 ① 吳亞峰 蘇亞光 .Android 3D 游戲開(kāi)發(fā)技術(shù)詳解與典型案例 [M].北京 :電子工業(yè)出版社 .2020:P119– P121 public void onSurfaceChanged(GL10 gl, int width, int height) { ?? 省略部分代碼 /*********** 計(jì)算投影參數(shù) ******************/ (gl, , ratio, , )。 點(diǎn)平均法向量指當(dāng)同一點(diǎn)隸屬于多個(gè)面時(shí),為其分配的是各個(gè)面法向量的平均值。 // 環(huán)境光設(shè)置 (, , ambientParams, 0)。 代碼 在本論文的工程開(kāi)發(fā)中,設(shè)置物體材質(zhì)的代碼如代碼 。這樣做的缺點(diǎn)是不僅浪費(fèi)了內(nèi)存(需要額外存儲(chǔ)大量的頂點(diǎn)信息),也浪費(fèi)了開(kāi)發(fā)人員寶貴的精力。 // 高光反射區(qū)域,數(shù)越大高亮區(qū)域越小、越暗 (, ,shininessMaterial, 0)。 (, currentTextureId)。因此, 實(shí)現(xiàn)上述效果的主要難點(diǎn)在于:如何在同一屏幕中繪制這兩幅圖像 。主要代碼為代碼 。 wallpaperDrawable = () .getFastDrawable()。 mMatrix 是類中定義的矩陣對(duì)象,它能對(duì)多邊形進(jìn)行各種的變形。 ?? 省略部分代碼 } private void doDraw(Canvas canvas, Bitmap bp, float src[], float dst[]) { ()。該3D場(chǎng)景獲取了 Workspace 中每個(gè)子視圖的緩存圖像(假設(shè)有 N 個(gè)視圖),把 N幅圖像繪制在地板上 N棱柱的側(cè)面,并使用 鏡像技術(shù) 繪制地板,使 N 棱柱的每個(gè)側(cè)面在地板上都有倒影。其中計(jì)算公式如下: X = RADIUS * SIN( 360 * (n 1) / N); Z = RADIUS * COS(360 * (n – 1 / N)); 注: RADIUS 為圓的半徑; N 為圖像數(shù)量; n 為位于同一圓中的頂點(diǎn)序數(shù)(從 1開(kāi)始計(jì)算),如第一幅圖的左頂點(diǎn)序數(shù)為 1,第三幅圖的右頂點(diǎn)為 6。 然后,依據(jù)傳遞過(guò)來(lái)的圖像數(shù)組的長(zhǎng)度(即圖像數(shù)量 N)計(jì)算出圓的半徑及每幅圖像頂點(diǎn)的 xz 坐標(biāo)。但由于在方案一中,不同的 N值將會(huì)嚴(yán)重影響圖像的大小,而方案二中圖像大小已確定, N 值只影響 N棱體橫截面所在的圓的半徑。 那以 什么規(guī)律來(lái)移動(dòng)多邊形的邊呢?由于向量具有方向性,因此采取利用向量移動(dòng)多邊形的邊。具體代碼實(shí)現(xiàn)如代碼 。positionZs[index] = (float) (radius * (Math .toRadians(angleSpan * index)))。//頂點(diǎn)數(shù)組 float vertices[] = new float[] {(positionXs[(index + 1) % number]+moveX)*, height*, (positionZs[(index + 1) % number]+moveZ)*, (positionXs[index]+moveX)*, 0, (positionZs[index]+moveZ)*, (positionXs[(index + 1) % number]+moveX)*, 0, (positionZs[(index + 1) % number]+moveZ)*, (positionXs[(index + 1) % number]+moveX)*, height*, (positionZs[(index + 1) % number]+moveZ)*, (positionXs[index]+moveX)*, height*, (positionZs[index]+moveZ)*, (positionXs[index]+moveX)*, 0, (positionZs[index]+moveZ)* }。因此,如圖 、 、 順序繪制場(chǎng)景 ② 。距離大小為相對(duì)值而非實(shí)際距離,這個(gè)值越大表示與 攝像機(jī) 之間的距離越大。因?yàn)榧词龟P(guān)閉了深度檢測(cè),由于圖像不透明,它仍然會(huì)去更新覆蓋所有 Depth Buffer,而且把較遠(yuǎn)的鏡像遮擋住。 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開(kāi)發(fā) 34頁(yè) 圖 不透明地板紋理圖 圖 透明度為 30%地板紋理圖 其次,修改物體的繪制順序。 // 關(guān)閉混合 /*** 2,繪制鏡像體:需打開(kāi)深度檢測(cè) */ // 開(kāi)啟深度檢測(cè) ()。 /*** 3,繪制半透明反射面:需關(guān)閉深度檢測(cè)(默認(rèn)),打開(kāi)混合模式 */ // 開(kāi)啟混合 ()。 // 初始化材質(zhì)為白色 (gl)。如本應(yīng)用程序中的立方體就可以通過(guò)矩形的平移以及旋轉(zhuǎn)變化得到。 ()。 (90, 1, 0, 0)。 (*,0,0)。 (90, 0, 1, 0)。在編程上,對(duì)資源的有效管 理更多地展現(xiàn)在是否存在內(nèi)存泄露的問(wèn)題。// 用來(lái) 繪制比較真實(shí)的效果 // 創(chuàng)建普通不透明反射面 alphaFloor = new Floor(, , floorTexId)。 使用鏡像技術(shù)也會(huì)使繪制速度下降,因?yàn)樾枰趫?chǎng)景中,繪制鏡像和使用混合。但開(kāi)發(fā)者必須意識(shí)到使用 OpenGL ES 開(kāi)發(fā)應(yīng)用程序的固有缺點(diǎn):十分占用計(jì)算資源及內(nèi)存。 。 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開(kāi)發(fā) 40頁(yè) 參考文獻(xiàn) [1]吳亞峰 蘇亞光, Android 3D 游戲開(kāi)發(fā)技術(shù)詳解與典型案例 [M].北京:電子工業(yè)出版社, 2020:P79– P268 [2]閻宏, JAVA 與模式 [M]. 北京:電子工業(yè)出版社, 2020:P209– P266 [3]Lauren Darcey[美 ] Shane Conder[美 ],Android 移動(dòng)開(kāi)發(fā)一 本就夠 [M].北京:人民郵電出版社, 2020:P276– P298 [4]葉乃文 鄺勁筠等, JAVA 核心技術(shù)卷一:基礎(chǔ)知識(shí) [M].北京:機(jī)械工業(yè)出版社, 2020:P143– P273 [5]陳昊鵬 王浩等, JAVA 核心技術(shù)卷二:高級(jí)特性 [M].北京:機(jī)械工業(yè)出版社, 2020:P1– P147 [6]李軍 徐波等, OpenGL 編程指南 [M].北京:機(jī)械工業(yè)出版社, 2020:P1– P308 [7]張琪 付飛等, OpenGL超級(jí)寶典(第 4版) [M].北京:人民郵電出版社, 2020:P1– P246 [8]陳昊鵬, JAVA 編程思想 [M].北京:機(jī)械工業(yè)出版社, 2020:P76– P108 [9]尹松強(qiáng) 傅鸝 .java 反射機(jī)制探究 [J], 2020 年 (第 7卷第 11 期 ):P85P85 [10] google 公司官網(wǎng) . [11] 安卓開(kāi)發(fā)者官網(wǎng) . 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開(kāi)發(fā) 41頁(yè) 致 謝 本論文在老師的悉心指導(dǎo)和嚴(yán)格要求下已完成,從課題選擇到具體撰寫(xiě)和修改完善,無(wú)不凝聚了老師的心血和汗水。硬件上,不斷地更新?lián)Q代,計(jì)算能力不斷增強(qiáng),幾乎可以與個(gè)人計(jì)算機(jī)媲美。 } /** * 釋放資源 */ public void destroy() { /** * 釋放 bitmap資源 */ ()。因此,在銷毀場(chǎng)景時(shí),釋放持有的圖像資源。 ()。 (90, 0, 1, 0)。因此,應(yīng)該把更多初始化工作以及某些十分耗費(fèi)計(jì)算資源的處理放在場(chǎng)景初始化的階段進(jìn)行。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1