機(jī)器人程序設(shè)計(jì)報(bào)告_第1頁(yè)
機(jī)器人程序設(shè)計(jì)報(bào)告_第2頁(yè)
機(jī)器人程序設(shè)計(jì)報(bào)告_第3頁(yè)
機(jī)器人程序設(shè)計(jì)報(bào)告_第4頁(yè)
機(jī)器人程序設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

期末考試論文專用期末考試論文專用 課程名稱 班號(hào) 學(xué) 號(hào) 姓名 成績(jī) 任課教師 日期 2009 年 12 月 20 日 機(jī)器人程序設(shè)計(jì)報(bào)告機(jī)器人程序設(shè)計(jì)報(bào)告 軟件使用說(shuō)明軟件使用說(shuō)明 本程序主要功能有 播放一段程序員預(yù)選制作好的機(jī)器人運(yùn)動(dòng)動(dòng)畫 用戶可以通過(guò)細(xì)節(jié)窗口觀 察機(jī)器人 也可通過(guò)全局觀察窗口觀察機(jī)器人在整個(gè)場(chǎng)景中的運(yùn)動(dòng) 程序擁有一個(gè)主窗口 三個(gè)子 窗口 其中主窗口擁有四個(gè)菜單選項(xiàng) 訂制動(dòng)畫子窗口擁有一個(gè)菜單項(xiàng) 菜單項(xiàng)通過(guò)右鍵點(diǎn)擊彈出 主窗口菜單功能介紹 重播 可以讓用戶重復(fù)觀看預(yù)制動(dòng)畫或者自制動(dòng)畫 規(guī)定動(dòng)作模式 此模式下可播放程序員事先制作好的一段動(dòng)畫 自選動(dòng)作播放模式 播放用戶制作好的一段動(dòng)畫 自選動(dòng)作設(shè)計(jì)模式 在此模式下用戶可通過(guò)自制動(dòng)畫窗口提供的功能制作機(jī)器人動(dòng)畫 訂制動(dòng)畫子窗口菜單功能介紹 添加動(dòng)作功能 當(dāng)用戶制作完成一個(gè)關(guān)鍵幀后可使用此菜單功能將關(guān)鍵幀加入到鏈表中 實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)?zāi)康?本實(shí)驗(yàn)?zāi)康?1 通過(guò)編程深入理解的計(jì)算機(jī)圖形學(xué)原理 2 掌握基本的圖元繪制 3 熟悉程序的編寫過(guò)程 4 了解程序與用戶的交互過(guò)程 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容 編程實(shí)現(xiàn)以下功能 1 制作一個(gè)三維場(chǎng)景 場(chǎng)景主體為機(jī)器人 2 機(jī)器人可在場(chǎng)景中作一些運(yùn)動(dòng) 3 機(jī)器人運(yùn)動(dòng)以動(dòng)畫的形式表現(xiàn)出來(lái) 4 向用戶提供一個(gè)交互的平臺(tái)使用戶可以自己制作機(jī)器人動(dòng)畫 原理解析原理解析 1 文字界面文字界面 文字界面是必要的一個(gè)模塊 它可以幫助用戶更好的去使用程序 也可以幫助程序員推銷自己 的軟件 英文輸出 英文輸出 通過(guò)glut庫(kù)給定的void glutBitmapCharacter void font int character 函數(shù)可以在窗口中 顯示單個(gè)英文字符 并且可以指定font 字體 既然可以顯示單個(gè)字符 那么自然可以顯示字符串 使用glRasterPos2i int Posx int Posy 函數(shù)可以指定當(dāng)前需要顯示的字符的位置 在顯示完一個(gè) 字符后此位置會(huì)自動(dòng)水平移動(dòng) 因此結(jié)合這兩個(gè)函數(shù)可實(shí)現(xiàn)英文字符串的指定位置輸出功能 中文輸出 中文輸出 相對(duì)英文輸出來(lái)說(shuō) 中文輸出有很多的優(yōu)勢(shì) 首先 程序員的母語(yǔ)是中文 那么當(dāng)程序員如果 能使用中文輸出則可更貼切地表達(dá)想要傳遞給用戶的信息 在某些時(shí)候甚至只能用中文才能表達(dá)清 楚 其次 用戶的母語(yǔ)也基本上是中文 并且英文水平也各不相同 在這樣的情況下中文輸出就顯 得更加必要了 再次 窗口用于文字輸出的空間是有限的 這就使得精煉的或者說(shuō)占用空間小的文 期末考試論文專用期末考試論文專用 課程名稱 班號(hào) 學(xué) 號(hào) 姓名 成績(jī) 任課教師 日期 2009 年 12 月 20 日 字表達(dá)顯得很重要 而這一點(diǎn)上中文明顯優(yōu)于英文 中文顯示的實(shí)現(xiàn)分下面幾個(gè)步驟 從文件中讀取漢字點(diǎn)陣信息 獲取某個(gè)漢字的雙 ASC 碼值 根據(jù)獲得的 ASC 碼值在內(nèi)存 中找到相應(yīng)得漢字點(diǎn)陣數(shù)據(jù) 使用 gl 庫(kù)中的位圖顯示功能 將漢字輸出到指定位置 本程序使用的漢字點(diǎn)陣為16 X 16 宋體字體 字庫(kù)文件為HKZ16 大小為261K 因此需要開(kāi)辟 261K大小的內(nèi)存并讀入此文件全部信息 一個(gè)漢字是由兩個(gè)ASC碼組成的 而英文字符 包括其它常用字符如數(shù)字等 則只由一個(gè)ASC碼 代表 漢字的前一個(gè)ASC碼值是大于128的 而英文字符 包括其它常用字符如數(shù)字等 的ASC碼值 全是小于等于128的 這是判斷一個(gè)字符是否為漢字的重要標(biāo)志 漢字的前一個(gè)ASC碼稱為區(qū)碼 后 一個(gè)稱為位碼 這兩個(gè)數(shù)的大小與漢字點(diǎn)陣信息在字庫(kù)文件中的位置有關(guān) 在字庫(kù)文件中找漢字信息就好比在某小區(qū)找人 區(qū)碼就相當(dāng)于此人所在的樓號(hào) 而位碼則相當(dāng) 于此人所在的房間號(hào) 給定了樓號(hào)與房間號(hào)那么人就可以找到了 找到點(diǎn)陣信息后可以使用gl庫(kù)中的glBitmap 函數(shù)來(lái)顯示出來(lái) 此函數(shù)的用法就不再贅述 中英文混合顯示 中英文混合顯示 中文顯示固然很不錯(cuò) 但是在某些情況下英文字符又不可缺少 比如數(shù)字 運(yùn)算符等等 因此 混合顯示是最佳的一個(gè)解決方式 混合顯示的關(guān)鍵點(diǎn)在于順序顯示字符串中的字符時(shí)判斷當(dāng)前字符 是中文還是英文字符 前面提到過(guò)漢字的前一個(gè)ASC碼值是大于128的 而英文字符則小于等于 128 這樣就順利地解決了辨認(rèn)問(wèn)題 從而實(shí)現(xiàn)了混合顯示 增加了程序員隊(duì)界面的掌握和對(duì)程序 的表達(dá)能力 期末考試論文專用期末考試論文專用 課程名稱 班號(hào) 學(xué) 號(hào) 姓名 成績(jī) 任課教師 日期 2009 年 12 月 20 日 2 2 多窗口系統(tǒng) 多窗口系統(tǒng) 采用多窗口而不是單個(gè)窗口的好處不言而喻 本程序采用在主窗口下開(kāi)辟三個(gè)子窗口的方式來(lái) 實(shí)現(xiàn)多窗口系統(tǒng) 三個(gè)窗口分別是 細(xì)節(jié)觀察窗口 攝像機(jī)觀察窗口 文字信息窗口 其作用分別 是 細(xì)節(jié)觀察可讓用戶比較細(xì)致的看到機(jī)器人的動(dòng)作 這一點(diǎn)在用戶設(shè)計(jì)動(dòng)作模塊中顯得非常重要 攝像機(jī)觀察窗口可以讓用戶對(duì)整個(gè)場(chǎng)景有個(gè)全局的把握 文字信息窗口主要顯示與機(jī)器人動(dòng)作相關(guān) 的各項(xiàng)參數(shù) 用戶可通過(guò)此窗口的互動(dòng)功能來(lái)改變這些參數(shù) 而參數(shù)的改變將直接影響其它兩個(gè)窗 口的圖像 從而使得用戶設(shè)計(jì)得以實(shí)現(xiàn) 期末考試論文專用期末考試論文專用 課程名稱 班號(hào) 學(xué) 號(hào) 姓名 成績(jī) 任課教師 日期 2009 年 12 月 20 日 細(xì)節(jié)窗口功能簡(jiǎn)介 細(xì)節(jié)窗口功能簡(jiǎn)介 此窗口的主要功能就是讓用戶可以細(xì)致地觀察機(jī)器人的動(dòng)作 因此觀察點(diǎn)設(shè)置在離機(jī)器人較近 的位置 并且在繪制時(shí)始終不改變機(jī)器人在世界坐標(biāo)系中的位置 從而保證了畫面始終是特寫 攝像機(jī)觀察窗口 全局觀察窗口 功能簡(jiǎn)介 攝像機(jī)觀察窗口 全局觀察窗口 功能簡(jiǎn)介 此窗口的主要功能是讓用戶可以觀察到場(chǎng)景的全局 當(dāng)機(jī)器人在較大范圍內(nèi)活動(dòng)時(shí) 比如做走 跑 跳等動(dòng)作時(shí)用戶可以比較全面的觀察它 訂制自選動(dòng)作窗口功能簡(jiǎn)介 訂制自選動(dòng)作窗口功能簡(jiǎn)介 此窗口的主要功能是提供給用戶一個(gè)平臺(tái) 使得用戶能夠自己編輯機(jī)器人的動(dòng)作 并將編輯的 各動(dòng)作作為關(guān)鍵幀 實(shí)現(xiàn)動(dòng)畫制作 3 3 機(jī)器人造型機(jī)器人造型 模型的獲得 模型的獲得 造型是程序的最重要的一步 因?yàn)樗苯佑绊懼曈X(jué)效果 因此我在造型上花費(fèi)的時(shí)間超過(guò)了 其它部分的總和 所有的造型工作均在另外的程序中完成 在得到滿意的模型后將模型上的網(wǎng)格節(jié) 點(diǎn)的坐標(biāo)存儲(chǔ)到文件中 然后在本程序中載入這些文件即可 為了使機(jī)器人各部分表面達(dá)到光滑的效果 我使用了Nurbs曲面 每個(gè)部位使用若干張Nurbs曲 面拼接而成 每張 Nurbs曲面為4 X 4的網(wǎng)格 通過(guò)調(diào)整每個(gè)網(wǎng)格節(jié)點(diǎn)的坐標(biāo)值來(lái)造就機(jī)器人的各 部位 其中臉部模型使用的曲面數(shù)多達(dá)64張 模型的自由度 模型的自由度 機(jī)器人的自由度決定了機(jī)器人動(dòng)作的豐富程度 是衡量模型好壞的一個(gè)重要指標(biāo) 本程序中的 機(jī)器人自由度主要體現(xiàn)在以下幾個(gè)方面 臂部 臂部的自由度主要體現(xiàn)在手臂整體可繞肩關(guān)節(jié)在x方向與z方向上轉(zhuǎn)動(dòng) 以及小臂可繞肘 關(guān)節(jié)在x方向與z方向上轉(zhuǎn)動(dòng) 腿部 腿部的自由度與手部相似 主要為腿整體可繞髖關(guān)節(jié)在x方向與z方向上轉(zhuǎn)動(dòng) 以及小臂 可繞肘關(guān)節(jié)在x與z方向上轉(zhuǎn)動(dòng) 期末考試論文專用期末考試論文專用 課程名稱 班號(hào) 學(xué) 號(hào) 姓名 成績(jī) 任課教師 日期 2009 年 12 月 20 日 腰部 腰以上部位可繞腰在z方向上轉(zhuǎn)動(dòng) 即彎腰動(dòng)作 整體 整體來(lái)說(shuō) 身體可繞x y z三個(gè)軸線轉(zhuǎn)動(dòng) 即翻滾 轉(zhuǎn)身 側(cè)斜動(dòng)作 另外身體中心還 可在世界坐標(biāo)系中任意地平移 4 4 動(dòng)作管理動(dòng)作管理 讀者可能會(huì)奇怪這個(gè)標(biāo)題為什么叫 動(dòng)作管理 下面我來(lái)解釋一下 機(jī)器人運(yùn)動(dòng)的動(dòng)畫實(shí)際上是電腦在不同的時(shí)刻里顯示機(jī)器人不同的動(dòng)作所產(chǎn)生的 因此每一個(gè) 單個(gè)的動(dòng)作就必須能夠快速 簡(jiǎn)便地被編輯 因?yàn)橐欢魏芏痰膭?dòng)畫可能需要許多個(gè)動(dòng)作組合在一起 要做到快速和簡(jiǎn)便就需要了解動(dòng)作形成的機(jī)制 將其關(guān)鍵的數(shù)據(jù)提取出來(lái) 并且有效的管理這些數(shù) 據(jù) 這就是上面所說(shuō)的 動(dòng)作管理 與動(dòng)作相關(guān)的數(shù)據(jù) 與動(dòng)作相關(guān)的數(shù)據(jù) 如上所說(shuō) 動(dòng)作管理 的關(guān)鍵在于提取與動(dòng)作相關(guān)的數(shù)據(jù) 這些數(shù)據(jù)決定了動(dòng)作 那么在此 模型下這些數(shù)據(jù)都指什么呢 請(qǐng)看下面的表格 表一 數(shù)據(jù)名稱數(shù)據(jù)范圍數(shù)據(jù)變量名稱 右臂繞肩關(guān)節(jié)在x 方向上的轉(zhuǎn)角 度 360至360 BigArmangleRightx 右臂繞肩關(guān)節(jié)在z 方向上的轉(zhuǎn)角 度 360至360 BigArmangleRightz 左臂繞肩關(guān)節(jié)在x 方向上的轉(zhuǎn)角 度 360至360 BigArmangleLeftx 左臂繞肩關(guān)節(jié)在z 方向上的轉(zhuǎn)角 度 360至360 BigArmangleLeftz 右小臂繞肘關(guān)節(jié)在 x方向上的轉(zhuǎn)角 度 360至360 LitArmangleRightx 右小臂繞肘關(guān)節(jié)在 z方向上的轉(zhuǎn)角 度 360至360 LitArmangleRightz 左小臂繞肘關(guān)節(jié)在 x方向上的轉(zhuǎn)角 度 360至360 LitArmangleLeftx 左小臂繞肘關(guān)節(jié)在 x方向上的轉(zhuǎn)角 度 360至360 LitArmangleLeftz 右腿繞髖關(guān)節(jié)在x 方向上的轉(zhuǎn)角 度 360至360 BigLegangleRightx 右腿繞髖關(guān)節(jié)在z 方向上的轉(zhuǎn)角 度 360至360 BigLegangleRightz 左腿繞髖關(guān)節(jié)在x 方向上的轉(zhuǎn)角 度 360至360 BigLegangleLeftx 左腿繞髖關(guān)節(jié)在z 方向上的轉(zhuǎn)角 度 360至360 BigLegangleLeftz 右小腿繞膝關(guān)節(jié)在 x方向上的轉(zhuǎn)角 度 360至360 LitLegangleRightx 右小腿繞膝關(guān)節(jié)在 z方向上的轉(zhuǎn)角 度 360至360 LitLegangleRightz 左小腿繞膝關(guān)節(jié)在 x方向上的轉(zhuǎn)角 度 360至360 LitLegangleLeftx 左小腿繞膝關(guān)節(jié)在 z方向上的轉(zhuǎn)角 度 360至360 LitLegangleLeftz 彎腰的角度 度 360至360 BowAngle 身體繞x軸轉(zhuǎn)角 360至360 BodyXAngle 期末考試論文專用期末考試論文專用 課程名稱 班號(hào) 學(xué) 號(hào) 姓名 成績(jī) 任課教師 日期 2009 年 12 月 20 日 度 身體繞y軸轉(zhuǎn)角 度 360至360 BodyYAngle 身體繞z軸轉(zhuǎn)角 度 360至360 BodyZAngle 身體中心在世界坐 標(biāo)系下的x坐標(biāo) 負(fù)無(wú)窮至正無(wú)窮 BodyCenter 0 身體中心在世界坐 標(biāo)系下的y坐標(biāo) 負(fù)無(wú)窮至正無(wú)窮 BodyCenter 1 身體中心在世界坐 標(biāo)系下的z坐標(biāo) 負(fù)無(wú)窮至正無(wú)窮 BodyCenter 2 此動(dòng)作到下個(gè)動(dòng)作 的時(shí)間間隔 秒 零至正無(wú)窮 Sec 除了最后一個(gè)數(shù)據(jù) 其它都直接影響機(jī)器人的動(dòng)作 最后一個(gè)數(shù)據(jù)對(duì)多個(gè)動(dòng)作的組合有影響 數(shù)據(jù)與動(dòng)作的關(guān)系 數(shù)據(jù)與動(dòng)作的關(guān)系 那么這些數(shù)據(jù)的改變會(huì)在那些細(xì)節(jié)上影響動(dòng)作呢 請(qǐng)看下一個(gè)表格 表二 機(jī)器人部位相關(guān)的局部動(dòng)作有關(guān)聯(lián)的數(shù)據(jù) 表一中 數(shù)據(jù) 頭彎腰 BowAngle 身體彎腰 BowAngle 右肩關(guān)節(jié)彎腰 BowAngle 右上臂彎腰 繞右肩關(guān)節(jié)轉(zhuǎn)動(dòng) 包括x方向與z方向 BowAngle BigArmangl eRightx BigArmangleRight z 右肘彎腰 繞右肩關(guān)節(jié)轉(zhuǎn)動(dòng) 包括x方向與z方向 BowAngle BigArmangl eRightx BigArmangleRight z 右下臂彎腰 繞右肩關(guān)節(jié)轉(zhuǎn)動(dòng) 包括x方向與z方向 饒右 肘關(guān)節(jié)轉(zhuǎn)動(dòng) 包括x方向與z 方向 BowAngle BigArmangl eRightx BigArmangleRight z LitArmangleRightx Lit ArmangleRightz 左肩關(guān)節(jié)彎腰 BowAngle 左上臂彎腰 繞左肩關(guān)節(jié)轉(zhuǎn)動(dòng) 包括x方向與z方向 BowAngle BigArmangl eLeftx BigArmangleLeftz 左肘彎腰 繞左肩關(guān)節(jié)轉(zhuǎn)動(dòng) 包括x方向與z方向 BowAngle BigArmangl eLeftx BigArmangleLeftz 左下臂彎腰 繞左肩關(guān)節(jié)轉(zhuǎn)動(dòng) 包括x方向與z方向 饒左 肘關(guān)節(jié)轉(zhuǎn)動(dòng) 包括x方向與z 方向 BowAngle BigArmangl eLeftx BigArmangleLeftz LitArmangleLeftx LitAr mangleLeftz 右髖關(guān)節(jié)不受局部動(dòng)作影響 左髖關(guān)節(jié)不受局部動(dòng)作影響 右大腿繞右髖關(guān)節(jié)轉(zhuǎn)動(dòng) 包括 x方向與z方向 BigLegangleRightx B igLegangleRightz 右膝關(guān)節(jié)繞右髖關(guān)節(jié)轉(zhuǎn)動(dòng) 包括 x方向與z方向 BigLegangleRightx B igLegangleRightz 右小腿繞右髖關(guān)節(jié)轉(zhuǎn)動(dòng) 包括 x方向與z方向 繞右膝關(guān)節(jié) BigLegangleRightx B igLegangleRightz LitLega 期末考試論文專用期末考試論文專用 課程名稱 班號(hào) 學(xué) 號(hào) 姓名 成績(jī) 任課教師 日期 2009 年 12 月 20 日 轉(zhuǎn)動(dòng) 包括x方向與z方向 ngleRightx LitLegangleRi ghtz 左大腿繞左髖關(guān)節(jié)轉(zhuǎn)動(dòng) 包括 x方向與z方向 BigLegangleLeftx Bi gLegangleLeftz 左膝關(guān)節(jié)繞左髖關(guān)節(jié)轉(zhuǎn)動(dòng) 包括 x方向與z方向 BigLegangleLeftx Bi gLegangleLeftz 左小腿繞左髖關(guān)節(jié)轉(zhuǎn)動(dòng) 包括 x方向與z方向 繞左膝關(guān)節(jié) 轉(zhuǎn)動(dòng) 包括x方向與z方向 BigLegangleLeftx Bi gLegangleLeftz LitLegang leLeftx LitLegangleLeftz 上述數(shù)據(jù)是在局部上影響機(jī)器人的動(dòng)作 還有幾個(gè)數(shù)據(jù)剩下的幾個(gè)數(shù)據(jù)則在整體上影響機(jī)器人 動(dòng)作 影響情況如下表 表三 影響范圍影響動(dòng)作有關(guān)聯(lián)的數(shù)據(jù) 表一中 數(shù)據(jù) 整體身體在垂直方向上翻滾 動(dòng)作 BodyXAngle 整體轉(zhuǎn)身動(dòng)作 BodyYAngle 整體側(cè)身動(dòng)作 BodyZYAngle 整體身體中心在世界坐標(biāo)系 中的x坐標(biāo) BodyCenter 0 整體身體中心在世界坐標(biāo)系 中的y坐標(biāo) BodyCenter 1 整體身體中心在世界坐標(biāo)系 中的z坐標(biāo) BodyCenter 2 整體與下一個(gè)動(dòng)作之間的時(shí) 間間隔 Sec 根據(jù)上述三個(gè)表格 機(jī)器人的繪制過(guò)程基本上可以寫成如下偽代碼 glPushMatrxi 此處為影響整體動(dòng)作部分 平移機(jī)器人整體 BodyCenter 0 BodyCenter 1 BodyCenter 2 繞x方向轉(zhuǎn)動(dòng) BodyXAngle 繞y方向轉(zhuǎn)動(dòng) BodyYAngle 繞z方向轉(zhuǎn)動(dòng) BodyZAngle 以下為繪制機(jī)器人人各部分 局部動(dòng)作穿插其中 glPushMatrix 彎腰 BowAngle 繪制頭 glPopMatrix glPushMatrix 彎腰 BowAngle 繪制身體 glPopMatrix glPushMatrix 彎腰 BowAngle 繪制肩關(guān)節(jié) 期末考試論文專用期末考試論文專用 課程名稱 班號(hào) 學(xué) 號(hào) 姓名 成績(jī) 任課教師 日期 2009 年 12 月 20 日 glPopMatrix glPushMatrix 彎腰 BowAngle 繞右肩x方向轉(zhuǎn) BigArmangleRightx 繞右肩z方向轉(zhuǎn) BigArmangleRightz 繪制右上臂 glPopMatrix glPushMatrix 彎腰 BowAngle 繞右肩x方向轉(zhuǎn) BigArmangleRightx 繞右肩z方向轉(zhuǎn) BigArmangleRightz 繪制右肘 glPopMatrix glPushMatrix 彎腰 BowAngle 繞右肩x方向轉(zhuǎn) BigArmangleRightx 繞右肩z方向轉(zhuǎn) BigArmangleRightz 繞右肘x方向轉(zhuǎn) LitArmangleRightx 繞右肘z方向轉(zhuǎn) LitArmangleRightz 繪制右下臂 glPopMatrix 左臂的繪制與右臂類似 腿部繪制類似 只需將肩關(guān)節(jié)變成髖關(guān)節(jié) 肘關(guān)節(jié)變成膝關(guān)節(jié) glPopMatrix 這樣 程序員只需通過(guò)控制表一中的24個(gè)變量即可實(shí)現(xiàn)動(dòng)作的設(shè)計(jì) 從而達(dá)到快速 簡(jiǎn)便地管 理動(dòng)作 下面具體舉個(gè)實(shí)例來(lái) 記得黑客帝國(guó)里的一個(gè)非常經(jīng)典的動(dòng)作 崔妮蒂與警察打斗時(shí)騰空 而起 雙手張開(kāi)與肩同高 一腿彎曲并前踢 這時(shí)畫面定格并旋轉(zhuǎn)360度 這個(gè)動(dòng)作后來(lái)被眾多影 視作品競(jìng)相模仿 下面我們也來(lái)模仿一下 首先在草稿上繪制動(dòng)作大概結(jié)構(gòu) 然后根據(jù)結(jié)構(gòu)計(jì)算出 24個(gè)動(dòng)作相關(guān)的數(shù)據(jù) 數(shù)據(jù)如下表 表四 數(shù)據(jù)名稱數(shù)據(jù)變量名稱數(shù)據(jù)大小 右臂繞肩關(guān)節(jié) 在x方向上的轉(zhuǎn)角 度 BigArmangleRightx0 右臂繞肩關(guān)節(jié) 在z方向上的轉(zhuǎn)角 度 BigArmangleRightz70 左臂繞肩關(guān)節(jié) BigArmangleLeftx0 期末考試論文專用期末考試論文專用 課程名稱 班號(hào) 學(xué) 號(hào) 姓名 成績(jī) 任課教師 日期 2009 年 12 月 20 日 在x方向上的轉(zhuǎn)角 度 左臂繞肩關(guān)節(jié) 在z方向上的轉(zhuǎn)角 度 BigArmangleLeftz70 右小臂繞肘關(guān) 節(jié)在x方向上的轉(zhuǎn)角 度 LitArmangleRightx0 右小臂繞肘關(guān) 節(jié)在z方向上的轉(zhuǎn)角 度 LitArmangleRightz0 左小臂繞肘關(guān) 節(jié)在x方向上的轉(zhuǎn)角 度 LitArmangleLeftx0 左小臂繞肘關(guān) 節(jié)在x方向上的轉(zhuǎn)角 度 LitArmangleLeftz0 右腿繞髖關(guān)節(jié) 在x方向上的轉(zhuǎn)角 度 BigLegangleRightx0 右腿繞髖關(guān)節(jié) 在z方向上的轉(zhuǎn)角 度 BigLegangleRightz0 左腿繞髖關(guān)節(jié) 在x方向上的轉(zhuǎn)角 度 BigLegangleLeftx90 左腿繞髖關(guān)節(jié) 在z方向上的轉(zhuǎn)角 度 BigLegangleLeftz0 右小腿繞膝關(guān) 節(jié)在x方向上的轉(zhuǎn)角 度 LitLegangleRightx0 右小腿繞膝關(guān) 節(jié)在z方向上的轉(zhuǎn)角 度 LitLegangleRightz0 左小腿繞膝關(guān) 節(jié)在x方向上的轉(zhuǎn)角 度 LitLegangleLeftx 90 左小腿繞膝關(guān) 節(jié)在z方向上的轉(zhuǎn)角 度 LitLegangleLeftz0 彎腰的角度 度 BowAngle0 身體繞x軸轉(zhuǎn)角 度 BodyXAngle180 身體繞y軸轉(zhuǎn)角 度 BodyYAngle0 身體繞z軸轉(zhuǎn)角 度 BodyZAngle0 身體中心在世 界坐標(biāo)系下的x坐標(biāo) BodyCenter 0 0 期末考試論文專用期末考試論文專用 課程名稱 班號(hào) 學(xué) 號(hào) 姓名 成績(jī) 任課教師 日期 2009 年 12 月 20 日 身體中心在世 界坐標(biāo)系下的y坐標(biāo) BodyCenter 1 7 0 身體中心在世 界坐標(biāo)系下的z坐標(biāo) BodyCenter 2 10 0 此動(dòng)作到下個(gè) 動(dòng)作的時(shí)間間隔 秒 Sec 僅當(dāng)動(dòng)作連續(xù)播放時(shí)此值 有意義 那么效果如何呢 請(qǐng)看下圖 數(shù)據(jù)窗口情況如下圖 5 5 動(dòng)畫的實(shí)現(xiàn)動(dòng)畫的實(shí)現(xiàn) 關(guān)鍵幀動(dòng)畫 關(guān)鍵幀動(dòng)畫 動(dòng)畫看起來(lái)之所以不同與一幅幅的靜止畫面是因?yàn)樗茉谳^短的時(shí)間內(nèi)連續(xù)的播放畫面 在本 程序中 畫面的播放頻率為每秒10次 也就是說(shuō)你要播放1秒鐘的動(dòng)畫就需要給系統(tǒng)提供10組數(shù)據(jù) 數(shù)據(jù)的獲得參見(jiàn)動(dòng)作管理部分 如果所有的動(dòng)作都是手動(dòng)獲得 那么一個(gè)20秒鐘的動(dòng)畫將需要 200組數(shù)據(jù) 這可不是一件輕松的活 為了減少工作量 這里引入關(guān)鍵幀動(dòng)畫技術(shù) 其原理如下 期末考試論文專用期末考試論文專用 課程名稱 班號(hào) 學(xué) 號(hào) 姓名 成績(jī) 任課教師 日期 2009 年 12 月 20 日 在一段時(shí)間內(nèi)設(shè)置若干個(gè)關(guān)鍵畫面 當(dāng)一個(gè)畫面與下一畫面之間某個(gè)時(shí)刻需要播放時(shí) 通過(guò)插 值的方式計(jì)算出一組插值數(shù)據(jù) 播放這組插值數(shù)據(jù)所對(duì)應(yīng)得畫面即可 關(guān)鍵幀數(shù)據(jù)的存放模式為鏈表方式 由于動(dòng)畫的長(zhǎng)短不一 關(guān)鍵幀的數(shù)量也就無(wú)法確定 使用 鏈表則可解決這一問(wèn)題 每次播放時(shí)只需判斷鏈表是否到達(dá)空指針就可確定動(dòng)畫是否應(yīng)該停止播放 而制作關(guān)鍵幀時(shí)也只需不斷地將新的幀數(shù)據(jù)添加到鏈表中去即可 關(guān)鍵幀動(dòng)畫既保證了畫面的流暢又使得程序員的工作量大大減低 是動(dòng)畫制作的必要部分 用戶自制動(dòng)畫 用戶自制動(dòng)畫 通過(guò)程序員搭建的交互平臺(tái) 用戶可以自己設(shè)計(jì)動(dòng)畫 這是本程序最大的特點(diǎn) 也是最難實(shí)現(xiàn) 的一部分 動(dòng)畫的制作最主要的工作是關(guān)鍵幀的制作 而關(guān)鍵幀制作實(shí)際上就是動(dòng)作數(shù)據(jù)的獲得 用戶可 先在草稿紙上粗略的繪制動(dòng)作 然后通過(guò)訂制動(dòng)作窗口的互動(dòng)功能細(xì)致地修改數(shù)據(jù) 從而制作滿意 的動(dòng)作 當(dāng)某一個(gè)動(dòng)作制作完畢只需點(diǎn)擊此窗口的右鍵菜單中 添加動(dòng)作 功能即可將關(guān)鍵幀保存到播 放鏈表中 當(dāng)用戶完成所有關(guān)鍵幀的制作后 只需在主窗口的右鍵菜單中選擇 自選動(dòng)作播放 即 可觀看自己制作的動(dòng)畫了 主窗口還有一個(gè) 重播 功能讓用戶可以多次重復(fù)觀看自制的動(dòng)畫 當(dāng) 然用戶也可使用這一功能重復(fù)觀看程序員實(shí)現(xiàn)做好的示例動(dòng)畫 實(shí)驗(yàn)步驟實(shí)驗(yàn)步驟 獲取機(jī)器人模型數(shù)據(jù)存 于文件中 最為耗時(shí) 建立多窗口界面載入文件 模型文件 中文字庫(kù)文件 在界面下測(cè)試文字輸出 與圖元輸出 測(cè)試機(jī)器人動(dòng)作相關(guān)函 數(shù) 制作關(guān)鍵幀 測(cè)試示例動(dòng)畫制作用戶自制動(dòng)畫互動(dòng) 部分 測(cè)試用戶自制動(dòng)畫功能 后期制作 文字 顏色 界面等作小的修改 實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)結(jié)果 本程序?qū)嵔Y(jié)果 1 實(shí)現(xiàn)了多窗口功能 2 實(shí)現(xiàn)了中英文混合輸出功能 3 實(shí)現(xiàn)了機(jī)器人動(dòng)作編輯功能 4 實(shí)現(xiàn)了關(guān)鍵幀動(dòng)畫 5 實(shí)現(xiàn)了用戶自制動(dòng)畫功能 難點(diǎn)與亮點(diǎn)難點(diǎn)與亮點(diǎn) 期末考試論文專用期末考試論文專用 課程名稱 班號(hào) 學(xué) 號(hào) 姓名 成績(jī) 任課教師 日期 2009 年 12 月 20 日 多窗口界面 亮點(diǎn)一 亮點(diǎn)一 多窗口界面可以使程序員從多個(gè)角度去展現(xiàn)自己的作品 難點(diǎn) 難點(diǎn) 多個(gè)窗口需要顯示不同的畫面 對(duì)程序員來(lái)說(shuō) 如何合理地復(fù)用代碼 如何協(xié)調(diào)個(gè)窗口的 信息 如何分配比重都將是不小的挑戰(zhàn) 亮點(diǎn)二 亮點(diǎn)二 中英文混合顯示 中英文混合顯示使得界面變得更加友好 更加人性化 更加本土化 難點(diǎn) 難點(diǎn) 需要了解的預(yù)備知識(shí)較多 要了解字符串的輸出 了解中文字庫(kù)文件的結(jié)構(gòu) 熟悉漢字點(diǎn) 陣的輸出 熟悉位圖在 窗口中的輸出等 亮點(diǎn)三 亮點(diǎn)三 動(dòng)作可編輯化 通過(guò)控制一組數(shù)據(jù)來(lái)達(dá)到對(duì)動(dòng)作的控制 而不必去關(guān)心程序中的細(xì)節(jié) 難點(diǎn) 難點(diǎn) 觀察機(jī)器人各部位繪制的規(guī)律 總結(jié)出共同的特點(diǎn) 利用共性編寫函數(shù)以實(shí)現(xiàn)動(dòng)作的數(shù)據(jù) 化管理 亮點(diǎn)四 亮點(diǎn)四 關(guān)鍵幀動(dòng)畫 關(guān)鍵幀動(dòng)畫節(jié)省了程序員大量的時(shí)間 右保證了動(dòng)畫的流暢性 同時(shí)也 有利于程序的維護(hù)與拓展 難點(diǎn) 難點(diǎn) 需要程序員理解動(dòng)畫原理 掌握動(dòng)畫的編制過(guò)程 亮點(diǎn)五 亮點(diǎn)五 用戶自制動(dòng)畫功能的實(shí)現(xiàn) 用戶雖然不了解動(dòng)畫的原理 但是通過(guò)程序員搭建的平臺(tái) 可以自己制作動(dòng)畫 這是本程序最大的亮點(diǎn) 也是實(shí)用性最強(qiáng)的一點(diǎn) 用戶可以在完全不熟悉編程 的情況下充分的發(fā)揮想象力與創(chuàng)造力去制作動(dòng)畫 用戶所需的只是藝術(shù)家的天賦 難點(diǎn) 難點(diǎn) 程序員需要提供細(xì)致的互動(dòng)功能以及友好方便的操作界面 并且 由于用戶的行為是無(wú)法 控制的 因此程序員必須處理好各種怪異操作帶來(lái)的影響 也就是俗稱的錯(cuò)誤處理 眾所周知 錯(cuò) 誤處理對(duì)程序員來(lái)說(shuō)永遠(yuǎn)都是一個(gè)極大的挑戰(zhàn) 實(shí)驗(yàn)體會(huì)實(shí)驗(yàn)體會(huì) 由于時(shí)間上以及技術(shù)上的原因 本程序有許多的不足和待完善之處 我總結(jié)了主要有以下幾點(diǎn) 機(jī)器人的手與腳的制作 手應(yīng)該說(shuō)是身體上最靈活 動(dòng)作最豐富的部位 如果能好好地將手的 模型制作好 那將會(huì)使本程序上一個(gè)檔次 但是正因?yàn)槭痔^(guò)靈活 模型的自由度就非常的高 制 作起來(lái)極難 也極費(fèi)時(shí)間 因此時(shí)間與技術(shù)的雙重難題使得我

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論