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

正文內(nèi)容

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

2025-09-22 15:39 上一頁面

下一頁面
  

【正文】 繪制 3D場(chǎng)景,由于屏幕本身是二維的,因此把三維場(chǎng)景映射到二維屏幕上,需要大量的數(shù)學(xué)運(yùn)算,因而加重了 cpu 的負(fù)載。因此,在銷毀場(chǎng)景時(shí),釋放持有的圖像資源。 alphaFloorTexId = initTexture(gl, bitmapAlphaFloor)。 ()。 (*,0,0)。 (90, 0, 1, 0)。 ()。因此,應(yīng)該把更多初始化工作以及某些十分耗費(fèi)計(jì)算資源的處理放在場(chǎng)景初始化的階段進(jìn)行。 //繪制上大面 ()。 (0, 0, *)。 (0, 0, *)。 /*** 繪制物體 */ public void drawSelf(GL10 gl){ /*** 保存矩陣 */ ()。但實(shí)際上,對(duì)于規(guī)則的物體,在實(shí)現(xiàn)上不必要計(jì)算出其每個(gè)頂點(diǎn)的坐標(biāo)。 // 關(guān)燈 ()。 // 開燈 initLight(gl)。// 繪制半透明反射面,用來 繪制比較真實(shí)的效果 // 關(guān)閉混合 ()。 // 繪制 ()。 // 繪制立方體鏡像 // 繪制旋轉(zhuǎn)體 ()。 (gl)。 最終實(shí)現(xiàn)的效果如圖 。原因是:鏡像被繪制得過于清晰細(xì)致,而現(xiàn)實(shí)生活中的倒影都是十分模糊的,并不像上圖那樣高度清晰。 圖 開啟混合后的效果 那 混合是什么呢?混合就是把兩種顏色 以某種既定的方式混合 在一起 ,再顯示在屏幕上 。 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開發(fā) 33頁 那么如何使鏡像能夠不被遮擋而被繪制出來呢?那就需要在繪制地面時(shí),關(guān)閉深度檢測(cè)。 當(dāng) OpenGL 柵格化所繪制基本圖形,將計(jì)算該圖形與 攝像機(jī) 之間的距離, 并 保存在Depth Buffer 中。 這個(gè)算法的基本步驟如下: 將 Depth Buffer 中的值使用最大值清空整個(gè) Depth Buffer,這個(gè)最大值缺省為 ,為距離 攝像機(jī) 最遠(yuǎn)的裁剪的距離。那是什么原因?qū)е鲁霈F(xiàn)這種情況呢?這是因?yàn)樵陂_發(fā) OpenGL 程序時(shí),出于優(yōu)化等原因,一般會(huì)開啟深度檢測(cè)。鏡像與實(shí)際物體顏色、大小相等,放置方向卻相反,由于鏡像與實(shí)際物體存在一個(gè)接觸面,而接觸面剛好與地面重合,因此產(chǎn)生的效果更真實(shí)。這是因?yàn)樵诂F(xiàn)實(shí)世界中,有各種因光線的存在而產(chǎn)生影子、倒影等效果,影子或者倒影是物體在地面或者其他反射面中的鏡像,因而效果十分真實(shí)。//計(jì)算 xz平移量 float moveX = (normalX * radius * ) / sum。 index number。 index number。 /*** 計(jì)算每個(gè)矩形 xz坐標(biāo) */ float angleSpan = 360 / number。 注: moveX、 moveZ 是 X、 Z坐標(biāo)的平移值; PARAM 是常量參數(shù); X、 Z是移動(dòng)向量的 X、 Z坐標(biāo)。各邊移動(dòng)向量的計(jì)算公式如下: X = (X1 + X2) /2; Y = 0; Z = (Z1 + Z2) / 2; 注: X、 Y、 Z 為移動(dòng)向量的三維坐標(biāo); X Z1為左端點(diǎn)的 X、 Z坐標(biāo); X Z2 為右端點(diǎn)的X、 Z坐標(biāo)。 圖 方案二實(shí)現(xiàn)的效果 如何使得每幅圖像之間有一定間隙呢?這需要依據(jù)正多邊形的特點(diǎn),巧妙利用了相關(guān)的數(shù)學(xué)知識(shí)。因此,最佳方案為方案二。 缺點(diǎn):圓半徑隨著 N值增大而增大;當(dāng) N值較大時(shí),可能導(dǎo)致用戶看不到 N 棱體中較遠(yuǎn)的側(cè)面,而最近的側(cè)面又擋住了所有視線。 而每幅圖像的下頂點(diǎn) Y 坐標(biāo)的值都為零,即 Y = 0; 上頂點(diǎn) Y 坐標(biāo)的值都等于 N棱體的高度,即 Y = HEIGHT; 注: HEIGHT 為 N棱體的高 度。 方案二 該方案思路依據(jù)是正 N 棱體的橫截面是一個(gè)正 N 邊形,正 N邊形的每個(gè)頂點(diǎn)一定在同360 * (n 1) / N X Z RADIUS 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開發(fā) 25頁 一個(gè)圓上,因此可以依據(jù)正多邊形的邊長(zhǎng)計(jì)算得到圓半徑,所以 只要確定了正多邊形的邊長(zhǎng)和圓心坐標(biāo)以及 N棱體的高度,就可以確定整個(gè) N棱體上所有點(diǎn)的坐標(biāo) 。 最終, N 棱體側(cè)面中的每幅圖像的三維坐標(biāo)全部確定下來了。 首先,給定浮點(diǎn)型常量 RADIUS 定義圓的半徑。 解決方案 正如上面三幅圖所示,場(chǎng)景中共有三大場(chǎng)景元素:藍(lán)白色立方體及其倒影,地板,附有不同圖像的 N棱體及其倒影。因此,即使每次轉(zhuǎn)屏 calculateRotate()方法 會(huì)被多次調(diào)用,但只一次性獲取了兩幅圖像,之后不再獲取,減少了 cpu的計(jì)算量和內(nèi)存的占用量。 (mMatrix)。所以,在獲取子視圖圖像時(shí),定義了一個(gè)布爾類型的標(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) })。 優(yōu)化方案 由于模擬 3D效果需要對(duì)圖像進(jìn)行處理,而 cpu 進(jìn)行圖像處理時(shí)耗時(shí)較多,占用資源也較多。 bitmaps[1] = (page2).getDrawingCache()。 (page2).setBackgroundDrawable(wallpaperDrawable)。} isGetPage = true。 */ if (!isGetPage) { if (mdirection == DIR_RIGHT) { page1 = (currentScreen + screenCount 1) % screenCount。當(dāng)方法 dispatchDraw(Canvas)檢測(cè)到當(dāng)前的觸摸狀態(tài)為SCROLLING 時(shí),就立即調(diào)用自定義方法 startRotate(Canvas, float)。 首先,由于 Workspace 中每個(gè)子視圖都有可能不同,而且隨時(shí)可能發(fā)生變化(如:用戶在子視圖中增加了圖標(biāo)等),因此必須計(jì)算出要獲取的是 Workspace 中的哪個(gè)子視圖圖像,然后獲取特定子視圖圖像。 return currentTextureId。// 指定放大縮小過濾方法 (, , )。 (1, textures, 0)。這種方案在很多情況下無疑是最好的解決辦法,要想實(shí)現(xiàn)這種紋理粘貼方式,只需要做以下兩方面工作: ( 1) 將紋理的 GL_TEXTURE_WRAP_S 與 GL_TEXTURE_WRAP_T 屬性值設(shè)置為 GL_REPEAT而不是 GL_CLAMP_TO_EDGE。 //高光材質(zhì)為白色 (, ,specularMaterial, 0)。 //環(huán)境光為白色材質(zhì) (, ,ambientMaterial, 0)。 但在應(yīng)用開發(fā)中,有時(shí)候需要把一幅紋理圖拉伸或縮小到目標(biāo)面上,在目標(biāo)面很大的情況下有三種解決方案: 將紋理拉大,這樣的缺點(diǎn)是紋理顯得非常不清楚,失去了原來清晰的效果,甚至可能變形。紋理映射允許 將指定的紋理素材映射到三維物體指定的多邊形面上。 // 最后的參數(shù)表示定 向光( 0)或定位光( 1) (, , positionParams, 0)。 // 散射光設(shè)置 (, , diffuseParams, 0)。例如,白色的材質(zhì)能發(fā)射所有顏色的光,紅色的材質(zhì)只能 ① 吳亞峰 蘇亞光 .Android 3D 游戲開發(fā)技術(shù)詳解與典型案例 [M].北京 :電子工業(yè)出版社 .2020:P121 ② 吳亞峰 蘇亞光 .Android 3D 游戲開發(fā)技術(shù)詳解與典型案例 [M].北京 :電子工業(yè)出版社 .2020:P143– P146 ()。 面法向量和點(diǎn)平均法向量各有其不同的使用場(chǎng)合。但很多情況下一個(gè)頂點(diǎn)并不只屬于 一個(gè)三角形面,而可能屬于多個(gè)三角形面。物體每個(gè)頂點(diǎn)的法向量是指處于三維物體表面處的法線方向,其用一個(gè)向量來表示。當(dāng)然這與物體本身也有關(guān)系,如果是類似鏡子的、光澤的金屬等,則光線為全反射,整個(gè)物體都很明亮,而對(duì)于像石膏雕像地毯等,則幾乎不存在鏡面成分。不管從哪 個(gè)方向看,散射光看上去總是一樣亮。 diffuse 即散射光,散射光來自于某個(gè)方向。 同時(shí),在設(shè)置光照效果 時(shí),需要設(shè)置光源的一些特性,如顏色。因此,光照對(duì)于三維物體來說十分重要。因此使用透視投影可以得到更加真實(shí)的 3D感受 (透視投影產(chǎn)生 的效果如圖 )。在正交投影中,可視的空間區(qū)域?yàn)殚L(zhǎng)方體 (正交投影產(chǎn)生的效果如圖 )。頂點(diǎn)處理完成后,通過 Rasterizer 來生成像素信息,稱為 Fragments。該 API 由 Khronos 集團(tuán)定義推廣, Khronos 是一個(gè)圖形軟硬件行業(yè)協(xié)會(huì),該協(xié)會(huì)主要關(guān)注圖形和多媒體方面的開放標(biāo)準(zhǔn)。/** 繪制屏幕 */ boolean onInterceptTouchEvent(MotionEvent motionEvent)。 最后,返回 true,即把當(dāng)前及后 續(xù)事件傳遞給本方法處理。 因此,當(dāng)用戶滑動(dòng)屏幕的前后坐標(biāo)差超過一定值時(shí),所有事件都會(huì)傳遞給onTouchEvent(MotionEvent)處理。如果超出了,則把觸 摸狀態(tài)改為 SCROLLING。 Launcher 轉(zhuǎn)屏方式主要由 Workspace 類里決定和處理。 如果最終需要處理事件的 視圖 的 onTouchEvent(MotionEvent)返回 false,那么該觸摸 事件將被傳遞至其上一層次的 視圖 的 onTouchEvent(MotionEvent)處理。 觸摸事件處理 由于 Launcher 接收到的觸摸 事件比較多 (例如單擊、長(zhǎng)按、滑動(dòng)等),處理邏輯也比較復(fù)雜,所以 Launcher 觸摸 事件處理 機(jī)制 采用 根視圖( DragLayer)統(tǒng)一分發(fā)處理。所以在開發(fā) Launcher之前必須更深入地了解其界面模型(如圖 )。 workspaceProxy = (WorkspaceProxy) (class_name) .getConstructor().newInstance(this)。 代碼 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ù)雜。也就是說,這類應(yīng)用通過采 用某種機(jī)制來實(shí)現(xiàn)對(duì)自己行為的描述和監(jiān)測(cè), 并能根據(jù)自身行為的狀態(tài)和結(jié)果,調(diào)整或修改應(yīng)用所描述行為的狀態(tài)和相關(guān)的語義 ① 。另外對(duì)于 OpenGL ES 應(yīng)用程序的性能優(yōu)化更是一個(gè)值得研究的領(lǐng)域。因此,現(xiàn)在市場(chǎng)上帶有 3D 效果的軟件都是通過在屏幕中以不同方向繪制圖像而已,即模擬 3D 效果,并非真正的 3D 場(chǎng)景。 2020 年, google 公司提出的安卓智能手機(jī)操作系統(tǒng),風(fēng)靡全球,立即引發(fā)基于該系統(tǒng)的軟件開發(fā)熱潮,尤其是針對(duì)改善交互模式的手機(jī)主題開發(fā)。在用戶轉(zhuǎn)屏?xí)r,模擬 3D 通過在同一屏幕上以固定的夾角、不同的視覺方向繪制兩個(gè)相關(guān)的子視圖圖像,從而實(shí)現(xiàn)轉(zhuǎn)屏效果。 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開發(fā) 1 頁 論文題目 : 基于 Android手機(jī)系統(tǒng)的 3D 桌面主題開發(fā) 基于 Android手機(jī)系統(tǒng)的 3D桌面主題開發(fā) 2 頁 中文摘要 2020 年, google 公司 ① 提出的安卓( Android) ② 智能手機(jī)操作系統(tǒng),風(fēng)靡全球,立即引發(fā)基于該系統(tǒng)的軟件開發(fā)熱潮。區(qū)別在于兩種主題樣式以不同的轉(zhuǎn)屏方式來實(shí)現(xiàn) Workspace 子視圖之間的跳轉(zhuǎn)。特別是移動(dòng)互聯(lián)網(wǎng)的高速發(fā)展,帶領(lǐng)人們進(jìn)入了“智能手機(jī)”時(shí)代。但目前的移動(dòng)設(shè)備硬件雖然有了一定的發(fā)展,可是對(duì)于運(yùn)行高耗性能的 3D 效果等,還 是力不從心。所以如何在手機(jī)系統(tǒng)上展現(xiàn) 3D 效果是一個(gè)十分值得研究的問題。 反射是 Java被認(rèn)為是動(dòng)態(tài)語言的一個(gè)非常重要的特性,它允許動(dòng)態(tài)發(fā)現(xiàn)和綁定類、方法、字段,以及所有其他的由語言所產(chǎn)生的元素。利用反射機(jī)制實(shí)例化對(duì)象的主要代碼為代碼。 ① 尹松強(qiáng) 傅鸝 .java 反射機(jī)制探 究 [J], 2020 年 (第 7 卷第 11 期 ):P85P85 String class_name = + style。因此, Launcher 中的界面元素大都是自定義視圖。 HomeScreen 基本結(jié)構(gòu)圖(如圖 )描述
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1