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

正文內容

基于嵌入式娛樂系統開發(fā)與實現畢業(yè)論文-資料下載頁

2025-08-19 17:40本頁面

【導讀】近年來,隨著微處理器技術和多媒體編碼技術以及嵌入式技術的不斷發(fā)展,起步,在接下來的幾年都會得到快速發(fā)展。嵌入式系統是以應用為中心、以計算。耗嚴格要求的專用計算機系統。頻播放等技術做成的娛樂系統,并通過嵌入式Linux操作系統進行任務的控制,圖片瀏覽器和五子棋游戲。以及個人手持設備上使用等。本系統中還有需要研究的方向為,可以通過因特網。要更進一步研究。

  

【正文】 qlonglong(renderTargetwinId()))。 args”vo””directx:noaccel”。 argsfilename。 mplayerProcessstart(“ ...//”); pollerstart(1000)。 視頻播放器實現界面 圖 視頻播放器界面 音頻播放器的實現 該模塊的實現主要是用到了 Phonon 多媒體框架, Phonon 多媒體庫是由 KDE 的開發(fā)人員建立的,其初衷是讓 KDE 的多媒體應用程序更易于編寫。 Phonon 有兩個窗口部件,提供通用多媒體 API 的前端和為這些 API 提供實際多媒體服務的后端。 Qt 的 Phonon 模塊為它的大部分 API 提供了一個輕量級的 Qt 風格的封裝。對于任何想使用這個模塊的開發(fā)項基于嵌入式娛樂系統開發(fā)與實現 21 目來說,必須在 .pro 文件加上 QT+=phonon。在 linux 環(huán)境下,它通常使用 GStreamer 庫 。在 windows 下,它使用 DirectX 和 DirectShow 庫 [10]。 音頻播放器界面設計 界面是通過 qt designer 設計。然后生成 文件,然后手動的通過 qt creator 帶的工具 uic 編譯。 uic –o 這樣就可以生成需要的頭文件。 這個頭文件里面包含了可視化界面設計出的界面中包含的元素。 圖 Qt designer 設計初界面 對于上面的這個界面,通過剛才的步驟就可以得到頭文件,該頭文件中就會包括該界面里包含的所有的元素,比如按鈕 Button、顯示 Label、 ListWidget 等。下面給出了部分頭文件中的元素定義: QLabel *label_time。 QToolButton *toolButton_open。 QLabel *label_show。 …… . 音頻播放器 Phonon 框 架的實現 Phonon 框架實際上有三種類型的對象:媒體數據源、媒體節(jié)點和媒體設備。 主要的 Phonon 類成員: 表 所示: 咸陽師范學院 2020 屆本科畢業(yè)畢業(yè)設計(論文) 22 表 Phonon 類成員 類 說明 Phonon::AudioOutput 音頻數據匯點的媒體節(jié)點,用來驅動聲卡或耳機 Phonon:: Effect 處理器媒體節(jié)點,可以傳遞音頻流 Phonon:: EffectWidget 用來控制效果處理器參數的窗口部件 Phonon:: MediaObject 媒體節(jié)點,用來控制多媒體對象的回放 Phonon:: MediaSource 向媒體對象源節(jié)點提供媒體數據對象 Phonon::Path 從一個媒體源節(jié)點到媒體對象匯點節(jié)點的數據路徑 Phonon:: SeekSlider 用來及時顯示和修正媒體對象回放位置的部件 通常 創(chuàng)建一個新的 Phonon:: Effect 實例,對其應用特效以實現想要的效果。假設已經取得了 Phonon:: createPath()方法返回 Phonon:: Path 指針,接下來就可以使用它調用Phonon:: Path::insertEffect(),并把我們剛剛創(chuàng)建的安格 Phonon:: Effect 實例傳給它 。 匯點節(jié)點是數據最終傳遞的物理設備, 如聲卡、耳機、或視頻設備,由 Phonon::AudioOutput 媒體節(jié)點或者 Phonon:: VideoPlayer 以及類似媒體節(jié)點的 Phonon::VideoWidget 窗口部件來表示 [11]。如下圖所示: 媒 體 源媒 體 對 象音 頻 匯 點音 頻 設 備 圖 音頻播放器實現原理 音頻播放器實現界面 圖 音樂播放器整體實現后界面 基于嵌入式娛樂系統開發(fā)與實現 23 圖片瀏覽器的實現 該圖片瀏覽器模塊的實現,主要是通過兩個類來完成的,一個是 MainImage,另 一個是ShowImage 類。 MainImage 類主要是用來作為主界面,而 ShowImage 類主要是作為后端來讀取圖片然后顯示出來。 圖片瀏覽器顯示界面設計 qt creator 創(chuàng)建界面 新建一個類 MainImage,然后繼承與 QWidget,自定義四個槽函數實現圖片翻頁瀏覽以及放大和縮小。 void turn2next()。 void turn2prev()。 void dirChanged(QString)。 void scalethepix(int)。 void changelabel(int)。 ,這五個函數式在本模塊中很關鍵,在這里只列出 一 個槽函數的實現: if (iterator+1 == ()) iterator = ()。 ++iterator。 pixmap = QPixmap(((*iterator)))。 wscale = 。 hscale = 。 emit turn2default(100)。 update()。 圖片瀏覽器控制設計 圖片瀏覽器的后臺,其實就是顯示圖片的類,同時操作圖片文件夾,在這個類里面實現整個模塊的功能。 在后臺有幾個很重要的方法, 如下兩個方法 : Void init_path(QDir QString)。 Void paintEvent(QPaintEvent *event) 首先 init_path(QDir QString)這個函數的主要功能就是獲得圖片文件夾的路徑,同時定咸陽師范學院 2020 屆本科畢業(yè)畢業(yè)設計(論文) 24 義選擇文件對話框,選擇規(guī)定格式的圖片。 filepath=QDir(newdir)。 QStringList filters。 filters *.png *.bmp *.gif *.jpg。 (filters)。 ( QDir::Files | QDir::Hidden | QDir::NoSymLinks )。 其次 實現 圖片顯示 ,通過給定的 pixmap,顯示 出 已選擇的 圖片。 顯示前 應該將圖片的大小 和風格進行定義 以及寬度 、高 度 等 : double pixwidth = static_castdouble(())。 double pixheight = static_castdouble(())。 double showwidth = static_castdouble(width())。 double showheight = static_castdouble(height())。 double Wscalerate = pixwidth / showwidth。 double Hscalerate = pixheight / showheight。 double pare = (Wscalerate Hscalerate ? Wscalerate : Hscalerate)。 最終 定義一個 QPainter 來實現 圖片 顯示,通過 QPainter 來畫出獲取資源文件,這個資源文件就是獲得的每張圖片。 QPainter painter(this)。 ()。 (showwidth/, (showheight/))。 (wscale, hscale)。 ((showwidth/2), (showheight/))。 if (pare ) (midrect, pixmap)。 else (rect, pixmap)。 ()。 通過以上的獲取圖片路徑,接著定義圖片的大小和風格,顯示出圖片。 圖片瀏覽器 實現界面 初始化 及圖片顯示 界面: 基于嵌入式娛樂系統開發(fā)與實現 25 圖 圖片瀏覽器初始化界面 圖 圖片瀏覽器圖片 圖 圖片縮放功能 五子棋游戲的實現 五子棋游戲是我們平時都會玩的游戲, 規(guī)則很簡單就是五顆棋子只要能夠連續(xù)在一起,就算勝利了,在本模塊的設計中,主要實現了人人對戰(zhàn)和人機對戰(zhàn)這兩種方式。 五子棋界面設計 界面的設計主要就是調用畫圖事件實現五子棋方格,以及棋子的畫法。通過兩個 for循環(huán)就可以實現界面布置 ,一個 for 循環(huán)控制行,另一個 for 循環(huán)控 制列。為了方便后期代碼的擴展,使用宏定義 N 來整個決定繪制的界面是幾行幾列 : for (int x = 10+MenuBarSize。 x = N*10+MenuBarSize。 x += 10) (x, 10+MenuBarSize, x, N*10+MenuBarSize)。 for (int y = 10+MenuBarSize。 y = N*10+MenuBarSize。 y += 10) (10+MenuBarSize, y, N*10+MenuBarSize, y)。 該游戲 是通過鼠標操作來控制棋子的位置,需要支持鼠標事件 , 然后顯示出當前棋子。實現方法如下: if (eventbutton() == Qt::LeftButton amp。amp。 bRun == true){ int x = eventx()。 int y = eventy()。 POINT ps。 = x。 = y。} 判斷當 前鼠標位置在繪制棋子范圍,通過獲得的鼠標 x、 y 位置,經過轉化比較結果。 if ( 10+MenuBarSize || 10+MenuBarSize || 300+10+MenuBarSize || 300+10+MenuBarSize) 咸陽師范學院 2020 屆本科畢業(yè)畢業(yè)設計(論文) 26 五子棋控制設計 在控制實現類中,基本上實現了所有的操作,在這里主要將幾個方法列舉出來加以分析: void judge()。 if (Total == N*N) //棋盤滿了,和棋 Who = 3。 int state = 0。 for (int x = 0。 x N。 x++) for (int y = 0。 y N。 y++) if (Data[x][y] == 0) 在判斷的方法里,主要 有三種狀態(tài)。第一,通過遍歷整個數組,如果到某一個位置,該位置上沒有棋子,則跳出本次循環(huán);第二, 如果 該位置 有棋子,則判斷,該棋子上下左右 以及左上、左下、右上、右下這八個方向是否連成了五顆顏色相同的棋子 ,如果存在,則結束本次游戲,等待用戶 選擇;第三,如果全盤掃描整個棋盤上都有棋子,但是不存在五顆相同顏色的棋子,那么就為和棋,則結束本次游戲,等待用戶選擇。 for (int i = 0。 i N。 i++) { data[i].resize(N)。 for (int j = 0。 j N。 j++) { data[i][j] = Data[i][j]。 } } 在這個方法中, 主要是實現界面數據的獲取, Data[i][j]為 vector 類型,存放界面上棋子的狀態(tài),初始化為都為 0,黑棋為 1,白棋為 2。獲得界面數據后,在判斷方法中使用。 五子棋中用到的算法實現 在本游戲中,由于涉及到人機對戰(zhàn)的方式,所以需要為機器設置一套算法來實現自動計算下一步的走法,所以用到了算法。分別用到了隨機算法、貪心算法以及改進的隨機算基于嵌入式娛樂系統開發(fā)與實現 27 法。 : int x = 0, y = 0。 srand(time(NULL))。 x = rand()%N。 y = rand()%N。 while (Data[x][y] != 0){ x = rand()%N。 y = rand()%N; } = x。 = y。 該算法 通過隨機函數 srand(time(null))產生隨機數字作為棋子的坐標,顯示在界面上。 : vectorvectorint HumanState, ComputerState。 vectorint temp(N, 0)。 for (int i = 0。 i N。 i++) for (int j = 0。 j N。 j++){ if (Data[i][j] == 0){ SetScore(i, j, 1, HumanState)。 SetScore(i, j, 2, ComputerState)。} : Set
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1