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

正文內(nèi)容

虛擬現(xiàn)實(shí)與vrml-第四章 vrml編程(文件)

 

【正文】 或從本書所附之光碟片尋找此檔。 安裝實(shí)例 ? : ? 第一步 :選擇 “ 開始 ” ?“ 程式集 ” ?ParallelGraphics“?Cortona VRML Client?View scene of the day。 VRML的編輯方法 ? 因?yàn)?VRML的檔案格式是一般文字檔,所以基本上使用任何的純文字編輯器,都可以編輯 VRML的檔案。圖 26是這個(gè) VrmlPad的編輯畫面。每當(dāng)你在右邊的視窗鍵入一個(gè)新的節(jié)點(diǎn) (Node),左半部的視窗Scene Tree就會(huì)出先一個(gè)相同的節(jié)點(diǎn) (Node)圖示。如此可以節(jié)省撰寫程式時(shí)間,也可以降低指令被撰寫錯(cuò)誤的機(jī)率。而 .wrl通常讀成 dot world,由副檔名可以感受到 VRML的目的就是去建造一個(gè)世界 (world)。 ? VRML的檔案標(biāo)頭對(duì)這個(gè)檔案有以下的描述: ? 它是個(gè) VRML的檔案。它使得 VRML能夠支援英文字元,例如 :A到 Z。 VRML的檔案註解 ? 我們看到範(fàn)例 31的第二行 Drawthecolumn ? 這是一個(gè) VRML的檔案註解,註明了這個(gè)程式的目的是 “ 畫柱子 ” 。 ? 在 VRML的程式中,註解的使用方式就是在每行程式的開頭加上 , 之後該行的文字便失去了程式執(zhí)行的功能,變成註解。 節(jié)點(diǎn) ? 由圖 32可以清楚地看到 Shape節(jié)點(diǎn)包含了許多相關(guān)的節(jié)點(diǎn) (Node和欄位(Field),所以 Shape節(jié)點(diǎn)是一個(gè)非常重要的節(jié)點(diǎn),將會(huì)在第四章和第五章裡再詳細(xì)地說明。 ? (例如 :radius ) 節(jié)點(diǎn) ? 所以在日後的各節(jié)中,將會(huì)介紹很多節(jié)點(diǎn)(Node)的語法 (Syntax),先看下面 Cone節(jié)點(diǎn)的語法 : 其中欄位值,如 :SFFloat、 SFBoo1等的意義將在 34節(jié)中說明。 節(jié)點(diǎn) ? 而子節(jié)點(diǎn) (Child Nodes)又該如何定義呢 ?所有的節(jié)點(diǎn)都可以視為子節(jié)點(diǎn),當(dāng)然也包括群節(jié)點(diǎn)。 欄位和欄位值 ? 在這一節(jié)中主要是介紹欄位的語法和欄位值的型態(tài)。 欄位和欄位值 ? 多重值的欄位值是有順序地寫在中括號(hào) []裡。 欄位和欄位值 ? 在一個(gè)節(jié)點(diǎn)的標(biāo)準(zhǔn)語法 (Syntax)中: 欄位值 (Field Value) SFFloat和 SFBool所代表的意義是什麼呢 ?由以下的介紹,將可以對(duì)於各種不同欄位值的型態(tài)更加了解。例如 :Cone這個(gè)節(jié)點(diǎn)的 side和 bottom這兩個(gè)欄位,它們的欄位值就是布林值,用來決定四週或底部是否顯現(xiàn)。常被使用在描述一個(gè)幾何外型或光線的顏色。 ? fooColor [ , , ] SFColor和 MFColor ? fooColor是一個(gè)值為 MFColor的欄位,它包含三組主要的顏色,分別為紅、綠、藍(lán)。以下為一個(gè)三原色混合的參考表 : SFFloatc和 MFFloat ? 值是浮點(diǎn)數(shù)。一個(gè)值為 MFFloat的 eventOut事件,它的初始值為空的中括號(hào) []。pixels values是用十六進(jìn)位法(hexadecimal)表示。 SFInt32和 MFInt32 ? 值是 32bit的整數(shù)值。值為SFInt32的 eventOut事件,它的初始值是 0。例如 : fooNode[ Transform {transltin 1 0 0} DEF CUBE BOX{} USE CUBE USE SOME_OTHER_NODE ] ? fooNode是一個(gè)值為 MFNode的欄位,它定義了四組節(jié)點(diǎn)。前三個(gè)值定義出旋轉(zhuǎn)軸,根據(jù)右手定則 (圖 34)。若一個(gè)值為SFRotation的 eventOut事件,它的初始值為 (0 1 0)。例如 : fooString[One, Two, Three, She is a cute girl] ? fooString是一個(gè)值為 MFString的欄位,它包含了兩組字串。時(shí)間值是使用真實(shí)世界中的絕對(duì)時(shí)間,單位是用秒來表示,從某一個(gè)特別的時(shí)間 (西元 1970年, 1月 1日。一個(gè)值為 SFTime的 eventOut事件,它的初始值為 1。通常被使用來表示一個(gè) 2D的位置。 SFVec3f和 MFVec3f ? 欄位值是一個(gè)三維的浮點(diǎn)數(shù)向量。一個(gè)值為 SFVec3f的 eventOut事件,它的初始值為 (0 0 0)。當(dāng)我們建構(gòu)一棟房子時(shí),房子一定會(huì)用到很多的柱、樑、窗戶和門等,可以發(fā)現(xiàn)絕大多數(shù)的柱、樑、窗戶和門的尺寸或外觀是相同的,只是位置不同,所以一開始 『 要先定義一根標(biāo)準(zhǔn)柱、一根標(biāo)準(zhǔn)樑、一個(gè)標(biāo)準(zhǔn)窗、一個(gè)標(biāo)準(zhǔn)門,把柱、樑、窗戶和門都視為單一的物件,而他們的屬性、尺寸也都設(shè)定在其中。在VRML的檔案中,可以定義任意個(gè)節(jié)點(diǎn)名稱,但是不能重複定義相同的名稱在同一個(gè) VRML的檔案中。它不可以包含不能顯現(xiàn)的 ASCII字元,像是 space、 tabs。每次被重用的節(jié)點(diǎn)則叫做「案例」 (instance)。透過範(fàn)例 31讀者應(yīng)該對(duì) DEF和USE的用法有更基本的認(rèn)識(shí)。例如 :一個(gè)節(jié)點(diǎn)的顏色 (color)可以被改變,set_color。事件是短暫的,事件值是不會(huì)被寫入 VRML的檔案中。 ? 大部分的 eventOuts都是以 _changed為結(jié)尾的事件,除了型態(tài)為 SFBool的 eventOuts。 路由 (Route) ? Route的功能是連接一個(gè)節(jié)點(diǎn)所產(chǎn)生的事件 (eventOuts)和一個(gè)節(jié)點(diǎn)接收的事件 (eventIns)。 ? ROUTE Syntax: ROUTE TO 範(fàn)例說明 ? 透過這個(gè)範(fàn)例主要的目的是讓讀者了解 ROUTE的功能,對(duì)一個(gè)初學(xué)的讀者應(yīng)該是不懂這範(fàn)例的意思,但筆者的重點(diǎn)是讓讀者知道 ROUTE如何建立節(jié)點(diǎn)間的路徑,並傳送事件。 ? 在本章中,對(duì)只做了文字上的描述和範(fàn)例介紹。從 VRML97變成了X3D就可以發(fā)現(xiàn)這是 3D圖形規(guī)範(fàn)上一個(gè)極大的變革 ,而最人的改變之處 ,就是 X3D結(jié)合了 XML和 VRML97。 Extensible 3D (X3D) ? X3D的定義: X3D全名是Extensible3D(X3D早期的名稱叫做VRMLNG, VRML Next Generation)。 (仍然可以使用 X3D的技術(shù)瀏覽 VRML的內(nèi)容 ) XML整合。就像 VRML所使用 the Open Inventor景緻圖形語法一樣地少為人知??梢灶A(yù)期地 XML將被 Netscape Communicator和MicroSoftIE瀏覽器所支援。 X3D的架構(gòu) X3D的架構(gòu) ? VRML 97 Profile表示位在 Core X3D之上,並且提供 VRML97完整的一致性。它是一個(gè)由 W3C(World Wide Web Consortium)所推廣的結(jié)構(gòu)化資訊交換標(biāo)準(zhǔn),並且已經(jīng)廣泛地被使用。 WellFormed是一種比較簡(jiǎn)單的格式,中文可譯為 正確的格式 。 3. 不含資料,而且只含單一標(biāo)籤的元素必須以 /來作結(jié)束。 7. 字元 僅能用在起始標(biāo)籤,而 amp。apos。如果該文件能符合 DTD的限制,那這份文件即可稱為 Valid。 文件格式定義 (DTD) ? DTD原文是 document type definition,可譯為文件格式定義。 文件格式定義 (DTD) ? DTD可以被引入到所描述的文件檔案中,也可以使用外界的 URL來連結(jié),其中以外部連結(jié)的 DTD還可以讓網(wǎng)站上各個(gè)不同的文件共享。最後並針對(duì)這兩個(gè)範(fàn)例加以說明比較。 X3D和 YRML97的範(fàn)例比較 ? 在本節(jié)將以 VRML97的語法先寫出一個(gè)簡(jiǎn)單的範(fàn)例為範(fàn)例 141,再以 X3D的語法改寫成範(fàn)例 142。 DTD詳細(xì)地定義出一組文件結(jié)構(gòu)的格式,例如 :DTD可能會(huì)指定一個(gè) BOOK元素只能有一個(gè) lSBN的子元素,也只能有一個(gè) TITLE的子元素,但是可以有一個(gè)或是一個(gè)以上的 AUTHOR子元素和可有可無的 SUBTITLE子元素。構(gòu)成的條件可以歸納如下 : 1. 符合 WellFormed格式的條件。 XML的格式 ? Valid為另一種格式,中文可譯為 有法可考 ,這種格式的 XML除了符合 WellFormed之外,還必須包含文件格式定義 (Document Type Definition, DTD)。 8. 能使用的 entity reference只有 amp。. 5. 元素可以呈巢狀但不能交錯(cuò)。即 ?xml version=。藉由已經(jīng)被明確制定落實(shí)的 XML規(guī)範(fàn), X3D以 XML為語法是容易被實(shí)現(xiàn)的,而不需要龐大的反向工程 (reverse engineering)。 ? Operating System Libraries為一般的系統(tǒng)圖書庫(kù),用來執(zhí)行核心技術(shù)和增加擴(kuò)張性。 提供 X3D標(biāo)準(zhǔn)的單位 ? Web3DConsortium下發(fā)展 X3D的主要組織: ? Shout3D為發(fā)展 3D圖形的商業(yè)公司: ? BlaxxunInteractive為發(fā)展互動(dòng)式虛擬世界的商業(yè)公司: 提供 X3D標(biāo)準(zhǔn)的單位 ? 這三個(gè)不同的網(wǎng)站,都有各自提出 X3D的新標(biāo)準(zhǔn),所以日後 X3D的標(biāo)準(zhǔn)可能會(huì)依循這三個(gè)網(wǎng)站的標(biāo)準(zhǔn)來發(fā)展。 2. 網(wǎng)頁(yè)的整合: XML對(duì)於網(wǎng)頁(yè)的整合,使得網(wǎng)站系統(tǒng)的維護(hù)更加簡(jiǎn)單,以至於更多的人有能力可以去發(fā)展網(wǎng)頁(yè),不管是充實(shí)網(wǎng)頁(yè)內(nèi)容或網(wǎng)頁(yè)的執(zhí)行。 (封裝經(jīng)量級(jí)的核心 (core)技術(shù),使其能夠輕易地加入 新的功能 ) 。 X3D名稱的由來是整合了 XML(Extensible Markup Language)和 VRML(Virtual Reality Modeling Language)。 前言 ? X3D將 XML的標(biāo)記式語法定為 3D圖形的標(biāo)準(zhǔn)語法,並且已經(jīng)完成了 X3D的文件格式定義 (DTD, Documnent Type Definition)。讀者從本章中獲得了這些基本概念後,對(duì)接下來的學(xué)習(xí)內(nèi)容應(yīng)該可以有所助益。 總結(jié) ? 讀完這章後,讀者對(duì)於整個(gè) VRML的檔案架構(gòu)應(yīng)該有所認(rèn)識(shí)。換句話說, Route的目的是負(fù)責(zé)建立兩個(gè)節(jié)點(diǎn)間的路徑。 ? eventIns和 eventOuts的型態(tài)為 SFTime時(shí),就不是再使用 set_和 changed_作為連接。如果一個(gè) exposeField叫做 zzz,那麼它的 eventln事件為 set_zzz, eventOut事件則為zzz_Changed。 事件 (Event) ? 一個(gè) exposedField能夠接收事件,像是 eventIn。大部分的節(jié)點(diǎn)有能力去處理進(jìn)入事件 (eventIns)。 USE SYNTAX USE nodename ? 在範(fàn)例 31中,先定義了一個(gè) Appearance的節(jié)點(diǎn)叫做 Yellow,原本是用來形容 Cylinder節(jié)點(diǎn)的外觀顏色 。 ? 還有一些對(duì) VRML有特別意義的名稱也不可以使用來當(dāng)作 nodename,例如 : USE SYNTAX USE nodename ? 如果你在一個(gè)檔案中定義了一個(gè)節(jié)點(diǎn)名稱,可以用「 USE」來重用已經(jīng)定義的節(jié)點(diǎn)名稱在相同的檔案中。字元可以是字母、數(shù)字和底線 (underscore, “ _”)。圖 36是一根標(biāo)準(zhǔn)柱,圖 37是一個(gè)標(biāo)準(zhǔn)樑,而圖 38則是由標(biāo)準(zhǔn)柱和標(biāo)準(zhǔn)樑構(gòu)成的樑柱結(jié)構(gòu)系統(tǒng)。 定義節(jié)點(diǎn)名稱 (DEF) 重用節(jié)點(diǎn)名稱 (USE) ? 將介紹如何定義一節(jié)點(diǎn)的名字。通常被使用來表示一個(gè) 3D的位置。一個(gè)值為 SFVec2f的 eventOut事件,它的初始值為 (0 0)。 SFVec2f和 MFVec2f ? 欄位值是一個(gè)二維的浮點(diǎn)數(shù)向量。通常是被應(yīng)用在動(dòng)畫中,決定何時(shí)開始或停止。一個(gè)值為 MFString的 eventOut事件,它的初始值是空的中括號(hào) []。 SFString和 MFString ? 它的一個(gè)欄位值是由在一對(duì)雙引號(hào)中的字元所構(gòu)成 (string)。通常被使用在定義一個(gè)物體的方位。一個(gè)值為 MFNode的eventOut事件,它的初始值是空的中括號(hào) []。 SFNode和 MFNode ? 值為 SFNode的欄位就是一個(gè) VRML的節(jié)點(diǎn)。值為SFInt32和 MFInt32的欄位和事件,其值可以用十進(jìn)位或十六進(jìn)位的格式來表示。它定義了一個(gè) 1個(gè)圖素 (pixel)寬和 2個(gè)圖素 (Pixels)高的圖片,只含一個(gè)元件圖片,底部的圖素是白 (0xFF),頂部的圖素是黑 (0x00)。可以表示一個(gè)物體外觀的表面紋路顏色。 , fooFloat [ , , ] ? fooFloat是一個(gè)欄位值為 MFFloat的欄位,它包含三組浮點(diǎn)數(shù)值。一個(gè)值為 MFColor的eventOut事件,它的初始值為空的中括號(hào)[]。
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1