專利名稱:瀏覽在虛擬三維空間中顯示的視覺(jué)內(nèi)容的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及顯示視覺(jué)內(nèi)容的虛擬三維空間。
背景技術(shù):
計(jì)算機(jī)屏幕和其它的二維QD)面一般用于顯示2D視覺(jué)內(nèi)容,比如文本頁(yè)、圖表或網(wǎng)頁(yè)。某些視覺(jué)內(nèi)容的形式包括兩個(gè)或多個(gè)內(nèi)容形式,比如包括文本和圖表的頁(yè),或包括與網(wǎng)站和無(wú)關(guān)廣告相關(guān)信息的網(wǎng)頁(yè)。通常,某一時(shí)刻僅在屏幕上顯示一頁(yè),并且該頁(yè)被屏幕的邊界限定。因此,即使頁(yè)中不同的元素彼此相關(guān),它們也必然會(huì)互相競(jìng)爭(zhēng)空間和觀看者的注意力。因此,廣告通常使現(xiàn)有的網(wǎng)頁(yè)過(guò)度擁擠,并且這也是為什么因特網(wǎng)廣告被認(rèn)為是無(wú)效的主要原因。當(dāng)網(wǎng)頁(yè)以這種方式顯示的時(shí)候,改變被顯示的網(wǎng)頁(yè)(叫做瀏覽或?qū)Ш?是不連續(xù)的過(guò)程,其中,從屏幕移開(kāi)初始顯示的網(wǎng)頁(yè),隨后再顯示另一頁(yè)。在某一時(shí)刻僅觀看一頁(yè)的能力使觀看者很難知道他在網(wǎng)站中的位置,同時(shí)也在導(dǎo)航通過(guò)網(wǎng)站時(shí)帶來(lái)不確定性。頁(yè)大小的改變也是以不連續(xù)的步驟來(lái)執(zhí)行的,并且對(duì)每個(gè)步驟的改變均需要對(duì)瀏覽器的返回。在屏幕中顯示視覺(jué)內(nèi)容的可替換方法包括在虛擬三維(3D)空間中布置幾個(gè)頁(yè)面,將3D空間的一部分投影到2D平面上。通過(guò)這種顯示視覺(jué)內(nèi)容的方法,觀看者可連續(xù)地在頁(yè)之間導(dǎo)航。例如,在申請(qǐng)人的共同未決申請(qǐng)US20020176636、Robertson等(Data Mountain :Using spatial memory for document Management)、及 Robertson 等(Task Gallery :a 3D WindowManager)中公開(kāi)了在三維空間中顯示視覺(jué)內(nèi)容及在空間中瀏覽視覺(jué)內(nèi)容的方法。已知幾種將3D空間投影到2D面的投影方法。例如,申請(qǐng)人的US20020176636公開(kāi)了使用單透視投影將3D空間投影到觀看面上。在這種情況下,在3D空間中定位視覺(jué)內(nèi)容,其中至少一頁(yè)位于稱為“基平面”的平面中。選擇觀看點(diǎn)和在觀看點(diǎn)處具有頂點(diǎn)的觀看線,以觀看3D空間的一部分,包括基平面的一部分。一旦選擇了觀看線,就將觀看面定位在3D空間中,使得觀看面在與觀看點(diǎn)相距預(yù)定距離處與觀看線相交。觀看點(diǎn)和觀看面定義了一個(gè)錐體,包括以觀看點(diǎn)作為頂點(diǎn)并且經(jīng)過(guò)觀看面邊緣上的點(diǎn)的觀看線的集合。位于錐體的由觀看面確定的截錐體中的3D空間的部分(稱為“觀看空間”)被透視地投影到觀看面。接下來(lái),將3D空間到觀看面的投影顯示在顯示設(shè)備上,比如計(jì)算機(jī)屏幕,電視或者用于立體觀看的頭戴式顯示器。瀏覽3D空間中的視覺(jué)內(nèi)容包括改變3D空間的視圖,以使得視覺(jué)內(nèi)容更易于觀看。這典型地通過(guò)用戶使用計(jì)算機(jī)的輸入設(shè)備(比如鼠標(biāo)或鍵盤(pán))來(lái)完成。申請(qǐng)人的 US20020176636公開(kāi)了連續(xù)地改變視角(比如每秒20到30次)。連續(xù)地改變視角創(chuàng)造了在基平面上流暢地滑過(guò)3D空間的印象。用戶可以放大頁(yè)面以便近距離觀察,或者縮小頁(yè)面。這里將把3D虛擬空間中的觀看點(diǎn)朝向3D空間中的目標(biāo)點(diǎn)移動(dòng)稱作針對(duì)目標(biāo)點(diǎn) “放大”。這里將把3D空間中的觀看點(diǎn)從3D空間中的目標(biāo)點(diǎn)移開(kāi)稱作針對(duì)目標(biāo)點(diǎn)“縮小”。 如這里所用,術(shù)語(yǔ)“縮放”包括放大和縮小??s放需要在目標(biāo)點(diǎn)和預(yù)定觀看點(diǎn)之間生成縮放路徑。
發(fā)明內(nèi)容
本發(fā)明提供了一種用于瀏覽在三維空間中顯示的視覺(jué)內(nèi)容的方法及系統(tǒng)。本發(fā)明可用于瀏覽通過(guò)現(xiàn)有技術(shù)中在三維空間中嵌入視覺(jué)內(nèi)容的任何已知方法嵌入到三維空間中的視覺(jué)內(nèi)容。本發(fā)明的第一方面提供了一種構(gòu)建三維(3D)虛擬空間中的預(yù)定觀看點(diǎn)Pn+1與3D 空間中的目標(biāo)點(diǎn)Ptl之間的縮放路徑的方法。目標(biāo)點(diǎn)具有在3D空間中的η > 2(n為整數(shù)) 個(gè)預(yù)定控制點(diǎn)Pl,...Pn,其中,根據(jù)預(yù)定度量,比如歐幾里得(Euclidean)度量,從目標(biāo)點(diǎn) P0到Pk的距離隨k的增加而增加(對(duì)于所有的1 < k < n-1,3D空間中Pk與Ptl之間的距離小于Pw與Ptl之間的距離)。此外,點(diǎn)Ptl,...,Pn為共面的。本發(fā)明的縮放路徑是非直線的,并通過(guò)至少一個(gè)控制點(diǎn)。同時(shí)根據(jù)本發(fā)明,縮放路徑到包括點(diǎn)Ptl,...,Pn的平面的投影具有連續(xù)的導(dǎo)數(shù)(derivative)。在本發(fā)明的多個(gè)實(shí)施例中,針對(duì)k = 1到m_l,通過(guò)Pk和 Pk+1之間的多項(xiàng)式內(nèi)插獲得縮放路徑的包括控制點(diǎn)P1. . .,Pffl的一部分。例如,縮放路徑可構(gòu)建為具有預(yù)定度(degree)的樣條(spline),并在包括Pn+1點(diǎn)及點(diǎn)P1,...,Pn中的至少兩個(gè)點(diǎn)的計(jì)算中獲得該縮放路徑。本發(fā)明的第二方面提供了一種在三維(3D)虛擬空間中的目標(biāo)點(diǎn)Ptl與3D空間中的預(yù)定觀看點(diǎn)Pn+1之間進(jìn)行縮放的方法。如上,目標(biāo)點(diǎn)具有在3D空間中的η彡2(n為整數(shù)) 個(gè)預(yù)定控制點(diǎn)P1, ... Pn,其中,點(diǎn)Ptl, ...,Pn為共面的,以及其中,3D空間中的Pk到Ptl之間的距離以任何預(yù)定度量隨k增加而增加。此外,點(diǎn)I\(k= 1到n+1)具有平面中預(yù)定的觀看線,該平面與點(diǎn)Ptl, ...Pn的平面平行。因此,點(diǎn)Pk (k= 1到n+1)的觀看線具有相對(duì)于點(diǎn)Ptl, ...PnW平面中的固定線的可由角度α k規(guī)定的方向。角度Cik可選擇,使得當(dāng)k = 1, ... η 時(shí),α k < α k+1,當(dāng) k = 1 至Ij η 時(shí),α k > α k+1。根據(jù)本發(fā)明這個(gè)方面的縮放方法首先包括利用本發(fā)明的方法,在預(yù)定觀看點(diǎn)Ρη+1 和控制點(diǎn)P1之間生成3D空間中的縮放路徑。為縮放路徑中多個(gè)點(diǎn)中的每個(gè)點(diǎn)分配位于平行于點(diǎn)Ptl, . . . Pn平面的平面中的且具有觀看角度的觀看線,相對(duì)于所述固定線,所述觀看角度具有由角度α規(guī)定的方向,使得對(duì)于縮放路徑上的任何一個(gè)點(diǎn)Pk,分配給點(diǎn)Pk的觀看角度為ak。從預(yù)定觀看點(diǎn)(用于放大)或點(diǎn)P1 (用于縮小)處的觀看點(diǎn)開(kāi)始,將2D觀看面定位在觀看點(diǎn)和目標(biāo)點(diǎn)之間,使得觀看點(diǎn)的觀看線指向觀看面上的預(yù)定固定點(diǎn),并且固定點(diǎn)與初始點(diǎn)相隔預(yù)定距離。然后將3D空間的一部分投影到觀看面,并且將投影顯示在諸如計(jì)算機(jī)監(jiān)視器的顯示設(shè)備上。然后將觀看點(diǎn)沿著縮放路徑移動(dòng)增量步幅,來(lái)確定新的當(dāng)前觀看點(diǎn)。然后重復(fù)該過(guò)程,直到觀看點(diǎn)到達(dá)P1 (放大)或預(yù)定觀看點(diǎn)(縮小)??梢酝ㄟ^(guò)現(xiàn)有技術(shù)中已知的投影方法(比如由觀看面的位置和觀看線的方向確定的透視投影),將3D 空間投影到觀看面上。本發(fā)明也提供了用于執(zhí)行本發(fā)明方法的系統(tǒng)。該系統(tǒng)包括計(jì)算機(jī)處理單元(CPU)。 CPU配置成運(yùn)行執(zhí)行本發(fā)明方法步驟的軟件。優(yōu)選地,為了選擇觀看線,系統(tǒng)也包括計(jì)算機(jī)輸入設(shè)備,比如計(jì)算機(jī)鼠標(biāo),鍵盤(pán),操縱桿,或者遙控器。可選地,系統(tǒng)可包括用于顯示觀看面的顯示設(shè)備,比如,計(jì)算機(jī)監(jiān)視器,電視,或機(jī)頂盒(set-up box)??蛇x地,CPU可配置成在顯示設(shè)備上顯示觀看面。
因此,本發(fā)明的第一方面提供了一種用于確定三維3D虛擬空間中的預(yù)定觀看點(diǎn) Pn+1與3D空間中的目標(biāo)點(diǎn)Ptl之間的縮放路徑的方法,目標(biāo)點(diǎn)具有在3D空間中的η > 2個(gè)預(yù)定控制點(diǎn)P1,... Ρη,η為整數(shù),對(duì)于所有的1 < k < η-1,3D空間中的Pk到Ptl之間的距離小于3D空間中的Pk+1到P0之間的距離,點(diǎn)P0. · · Pn是共面的,該方法包括(a)在觀看點(diǎn)Pn+1到控制點(diǎn)P1之間,生成3D空間中的非直線縮放路徑,縮放路徑通過(guò)點(diǎn)P1,. . .,Pm,其中m為整數(shù),滿足1 < m彡n,其中縮放路徑到包含點(diǎn)Ptl,. . . Pn的平面的投影具有連續(xù)的導(dǎo)數(shù)。本發(fā)明的第二方面提供了一種用于在三維3D虛擬空間中的目標(biāo)點(diǎn)Ptl與3D空間中的預(yù)定觀看點(diǎn)Pn+1之間進(jìn)行縮放的方法,目標(biāo)點(diǎn)具有在3D空間中的η ^ 2個(gè)預(yù)定控制點(diǎn) P1,... Ρη,η為整數(shù),對(duì)于所有的1 < k < η-1,3D空間中Pk到P。之間的距離小于3D空間中 Pk+1到P0之間的距離,3D空間中的點(diǎn)Ptl,...,Pn是共面的,當(dāng)k = 1到n+1時(shí),點(diǎn)Pk具有位于與點(diǎn)Ptl,... Pn的平面平行的平面中的預(yù)定的觀看線,當(dāng)k = 1到n+1時(shí),相對(duì)于點(diǎn)Ptl,... Pn 的平面中的固定線,點(diǎn)Pk的觀看線具有由角度α k確定的方向,對(duì)于k = 1,. . . n+1,該方法包括(b)利用根據(jù)本發(fā)明的方法,在預(yù)定觀看點(diǎn)Pn+1與控制點(diǎn)P1之間生成3D空間中的非直線縮放路徑;(c)為縮放路徑上的多個(gè)點(diǎn)中的每個(gè)點(diǎn)分配位于與點(diǎn)Ptl,. . . Pn的平面平行的平面中并且具有觀看角度的觀看線,相對(duì)于所述固定線,所述觀看角度具有由角度α規(guī)定的方向,使得對(duì)于縮放路徑上的任何一個(gè)點(diǎn)1\,分配給點(diǎn)Pk的觀看角度為α k ;(d)設(shè)置預(yù)定觀看點(diǎn)或點(diǎn)P1為當(dāng)前觀看點(diǎn);(e)將2D觀看面定位在當(dāng)前觀看點(diǎn)Pn+1與目標(biāo)點(diǎn)之間,其中當(dāng)前觀看點(diǎn)Pn+1的觀看線指向觀看面上的預(yù)定固定點(diǎn),并且所述固定點(diǎn)與初始點(diǎn)相隔預(yù)定距離;(f)將3D空間的至少一部分投影到觀看面;(g)將當(dāng)前觀看點(diǎn)沿著縮放路徑移動(dòng)一個(gè)增量步幅以確定新的當(dāng)前觀看點(diǎn);(h)定位觀看面以使得新的當(dāng)前觀看點(diǎn)的觀看線指向觀看面上的固定點(diǎn),以及使得新的當(dāng)前觀看點(diǎn)和固定點(diǎn)之間的距離為預(yù)定距離;(i)將3D空間的至少一部分投影到觀看面;(j)在顯示設(shè)備上顯示觀看面上的投影;以及(k)根據(jù)需要重復(fù)步驟(f)到(j),直到當(dāng)前觀看點(diǎn)是點(diǎn)P1或點(diǎn)Pn+1。
為了理解本發(fā)明及為了明白在實(shí)踐中如何實(shí)現(xiàn)本發(fā)明,參照附圖,現(xiàn)在將僅以非限制舉例的方式描述實(shí)施例,其中圖1示出了 3D虛擬空間中布置在基平面上的內(nèi)容元素;圖h,2b,2c示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的縮放路徑的構(gòu)建;以及圖3a,3b,3c和3d示出了根據(jù)本發(fā)明一個(gè)實(shí)施例在針對(duì)目標(biāo)點(diǎn)進(jìn)行放大期間獲得的一系列快照。
具體實(shí)施方式
圖1示出了在其中創(chuàng)建3D坐標(biāo)系統(tǒng)的3D虛擬空間5,具有χ軸、y軸和ζ軸。優(yōu)選地,三個(gè)軸互相垂直。3D空間中的基平面60平行于χ軸和ζ軸。3D空間包括內(nèi)容元素, 比如頁(yè)7 和75b,其定位在基平面60中。頁(yè)7 和7 定位在基平面中,且它們的邊80 平行于ζ軸以及它們的頂部朝向相同的方向。內(nèi)容元素76不是頁(yè)7 或75b的布局的一部分,其位于基平面上以便與附近的頁(yè)7 相關(guān)。頁(yè)7 包括內(nèi)容元素77,內(nèi)容元素77是 3D立體內(nèi)容元素。用戶使用計(jì)算機(jī)輸入設(shè)備(比如計(jì)算機(jī)鼠標(biāo))來(lái)選擇觀看點(diǎn)15和從觀看點(diǎn)15延伸的觀看線85。觀看點(diǎn)定義了觀看者眼睛的位置。觀看線85確定了觀看3D空間的角度。 然后將觀看平面10定位在3D空間中,觀看平面10通常垂直于觀看線5以及位于自觀看點(diǎn)15的平面的預(yù)定距離處。使用任何現(xiàn)有技術(shù)中已知的投影類型將3D空間的一部分投影到2D面上。例如,使用透視投影或者平行投影可完成3D空間到2D面的投影。申請(qǐng)人的US20020176636公開(kāi)了通過(guò)由觀看線和觀看面確定的透視投影,將3D空間投影到觀看面上。在這種如圖2所示的透視投影中,3D空間中的點(diǎn)P被投影到觀看面10的點(diǎn)P’,以使得點(diǎn)P,P’和觀看點(diǎn)15在同一直線上。在觀看面15上的3D空間投影可顯示在顯示設(shè)備上, 比如計(jì)算機(jī)監(jiān)視器,電視,或機(jī)頂盒。改變觀看線85改變了被投影到2D面的3D空間的部分,和/或改變了觀看3D空間的視角。這里將3D空間中的觀看點(diǎn)移向3D空間中的目標(biāo)點(diǎn)稱為針對(duì)目標(biāo)點(diǎn)進(jìn)行放大。 例如,從圖1所示的觀看點(diǎn)15的初始位置和觀看線85的取向,用戶可能希望針對(duì)基平面60 中的目標(biāo)點(diǎn)Pq放大。將3D空間中的觀看點(diǎn)從3D空間中的目標(biāo)點(diǎn)移開(kāi)在這里稱為針對(duì)目標(biāo)點(diǎn)縮小。如這里所用,術(shù)語(yǔ)“縮放”包括放大和縮小??s放需要生成目標(biāo)點(diǎn)和預(yù)定觀看點(diǎn)之間的縮放路徑??s放路徑為連續(xù)的曲線,具有位于3D空間中的預(yù)定觀看點(diǎn)的第一端點(diǎn)和位于目標(biāo)點(diǎn)附近的另一端點(diǎn)。本發(fā)明的第一方面提供了用于生成3D虛擬空間中預(yù)定觀看點(diǎn)和預(yù)定目標(biāo)點(diǎn)之間的縮放路徑的方法。根據(jù)本發(fā)明的這個(gè)方面,給目標(biāo)點(diǎn)分配用于生成預(yù)定觀看點(diǎn)和目標(biāo)點(diǎn)之間的縮放路徑的一個(gè)或多個(gè)控制點(diǎn)。選擇控制點(diǎn)從而與目標(biāo)點(diǎn)共面。例如,控制點(diǎn)可位于平行于η平面并且包含目標(biāo)點(diǎn)的單個(gè)平面中。控制點(diǎn)可僅依靠目標(biāo)點(diǎn)的坐標(biāo),并獨(dú)立于預(yù)定觀看點(diǎn)的位置或預(yù)定觀看點(diǎn)的觀看線。因此,可以事先預(yù)定控制點(diǎn)并存于存儲(chǔ)器中,而沒(méi)有必要在正好確定縮放路徑之前確定。在一個(gè)實(shí)施例中,將四個(gè)控制點(diǎn)分配給目標(biāo)點(diǎn)。例如,第一控制點(diǎn)P4被選擇為四個(gè)控制點(diǎn)中距離目標(biāo)點(diǎn)最遠(yuǎn)的點(diǎn)并且離目標(biāo)點(diǎn)足夠遠(yuǎn),這使得當(dāng)觀看點(diǎn)位于P4時(shí),包括目標(biāo)點(diǎn)的相對(duì)大量的基平面中的點(diǎn)被投影到觀看面。例如,當(dāng)觀看點(diǎn)位于P4時(shí),基平面中的兩個(gè)或多個(gè)頁(yè)被投影到觀看平面。第二控制點(diǎn)P3被選擇為比P4離目標(biāo)點(diǎn)近。例如,當(dāng)觀看點(diǎn)位于P3時(shí),單頁(yè)和它附近的一些對(duì)象一起被投影到觀看平面。第三臨時(shí)控制點(diǎn)P2被選擇為比P3離目標(biāo)點(diǎn)近。例如,當(dāng)觀看點(diǎn)位于P2時(shí),單頁(yè)被觀看以及該頁(yè)內(nèi)容的大部分(如果不是所有的)是清晰可見(jiàn)的。第四臨時(shí)控制點(diǎn)P1選擇為比其他三個(gè)控制點(diǎn)P2,P3,P4離目標(biāo)點(diǎn)近。更一般地,將η個(gè)控制點(diǎn)P1, ...,Pn分配給目標(biāo)點(diǎn),其中η為整數(shù),至少為2。點(diǎn) P1, ...,Pn被布置在3D空間中,使得對(duì)于所有的1 < k < Π-1,利用任何預(yù)定的度量,3D空間中Pk到目標(biāo)點(diǎn)Ptl之間的距離小于3D空間中Pk+1到目標(biāo)點(diǎn)Ptl之間的距離。此外,所有點(diǎn)Ptl,...,Pn都位于3D空間的單個(gè)平面中。在一個(gè)實(shí)施例中,對(duì)于所有可能的目標(biāo)點(diǎn),控制點(diǎn)具有關(guān)于目標(biāo)點(diǎn)相同的相對(duì)位置。圖加示出了基平面60位于)(Z平面中的部分,幾個(gè)頁(yè)面81位于)(Z平面中。目標(biāo)點(diǎn)Ptl位于幾個(gè)頁(yè)面之一上??刂泣c(diǎn)Pi,P2,...,IV...,及Pn被分配給目標(biāo)點(diǎn)Po。目標(biāo)點(diǎn)Pq 和控制點(diǎn)是共面的,在這個(gè)例子中,位于與^平面平行的平面中。排列控制點(diǎn),使得隨序號(hào) k增加,與目標(biāo)點(diǎn)Ptl的距離也增加。圖2b和2c示出了 3D空間5的兩個(gè)投影。在圖2b中,從正面觀看包括基平面60 的)(Z平面。在圖2c中從正面觀看XY平面,從側(cè)面觀看基平面60。在預(yù)定觀看點(diǎn)15的位置和控制點(diǎn)Pl (離目標(biāo)點(diǎn)最近的控制點(diǎn))之間生成非直線縮放路徑82。根據(jù)本發(fā)明,縮放路徑通過(guò)控制點(diǎn)P1, ...,Pm,其中m為整數(shù),滿足1彡m彡η (圖2的例子中,m = 2)。同時(shí)根據(jù)本發(fā)明,縮放路徑到包括點(diǎn)Ptl, ...,Pn的平面的投影(比如垂直投影)具有連續(xù)的導(dǎo)數(shù)。例如,縮放路徑可為具有預(yù)定度的樣條,在包括初始觀看點(diǎn)和控制點(diǎn)P1,...,Pn中的至少兩個(gè)的計(jì)算中獲得所述樣條。例如,可利用NURBS方法計(jì)算樣條,例如,在Cohen等,2001, Geometric Modeling with Splines :AnIntroduction. A. K. Peters. ,Farin,G,2002,Curves and Surfaces for CAGD 5thedition. Academic Press, Inc 中公開(kāi)的男|3樣。縮放路徑81具有控制點(diǎn)83,控制點(diǎn)83位于與控制點(diǎn)之一(圖2例子中的控制點(diǎn) Pn)相同的H平面中。因此,縮放路徑的點(diǎn)83和控制點(diǎn)Pn正好具有兩個(gè)相同的坐標(biāo)。再次參見(jiàn)圖2中的例子,其中,根據(jù)本發(fā)明使用四個(gè)控制點(diǎn)構(gòu)建了縮放路徑80。縮放路徑80連接預(yù)定觀看點(diǎn)15和控制點(diǎn)P1,并通過(guò)控制點(diǎn)P1和P2??s放路徑80具有連續(xù)的導(dǎo)數(shù)。在一個(gè)實(shí)施例中,縮放路徑中的至少一個(gè)點(diǎn)正好具有與選自控制點(diǎn)Pm+1,...斤 的控制點(diǎn)相同的兩個(gè)坐標(biāo)。一旦生成縮放路徑,觀看點(diǎn)沿著縮放路徑朝向或者遠(yuǎn)離控制點(diǎn)P1移動(dòng)。根據(jù)本發(fā)明的這個(gè)方面,觀看線被分配給縮放路徑中的多個(gè)點(diǎn),其中觀看線位于平行于控制點(diǎn)和目標(biāo)點(diǎn)平面的平面中。因?yàn)橛^看線均位于單個(gè)平面中,所以可以通過(guò)觀看線與觀看線平面中的固定線之間的角度α來(lái)規(guī)定觀看角度的方向。從觀看點(diǎn)的初始位置開(kāi)始,將2D觀看面定位在初始觀看點(diǎn)和目標(biāo)點(diǎn)之間,初始觀看線指向觀看面上的預(yù)定固定點(diǎn),所述固定點(diǎn)與初始觀看點(diǎn)具有預(yù)定距離。然后,至少3D空間的一部分被投影到觀看面上,然后觀看面的投影被顯示在顯示設(shè)備上,比如計(jì)算機(jī)屏幕。然后,觀看點(diǎn)以增量步幅沿著縮放路徑移向控制點(diǎn)P1并且從預(yù)定觀看點(diǎn)Ρη+1移開(kāi)(放大),或者移向預(yù)定觀看點(diǎn)Ρη+1并且從控制點(diǎn)P1移開(kāi) (縮小)。在每個(gè)步驟,2D觀看面位于3D空間中,使得當(dāng)前觀看點(diǎn)的觀看線指向觀看面的固定點(diǎn),以及使得當(dāng)前觀看點(diǎn)和固定點(diǎn)之間的距離為預(yù)定的距離。至少3D空間的一部分被投影到觀看面以及投影被顯示在顯示設(shè)備上??梢允褂萌魏螌?D空間投影到2D面的方法。 例如,使用由觀看點(diǎn)的當(dāng)前位置和當(dāng)前觀看線確定的透視投影將3D空間投影到觀看面。該過(guò)程持續(xù)直到觀看點(diǎn)到達(dá)P1或Ρη+1。為了避免“碰撞”到基平面60中,縮放在控制點(diǎn)P1結(jié)束ο因?yàn)橛^看線在放大期間保持在相同的平面中,所以觀看線的方向可以由觀看線與固定平面中的固定線之間的角度α規(guī)定。縮放路徑上多個(gè)點(diǎn)的每個(gè)點(diǎn)的角度α可以被選擇使得目標(biāo)點(diǎn)一直被投影到觀看面上??s放路徑上多個(gè)點(diǎn)的每個(gè)點(diǎn)的角度α可以被選擇使得觀看面上目標(biāo)點(diǎn)的投影在放大期間總是被單調(diào)地移向固定點(diǎn)(在放大期間,固定點(diǎn)和目標(biāo)點(diǎn)投影之間的距離減小)。角度α在位于縮放路徑上的每對(duì)控制點(diǎn)P1^PPw之間可具有連續(xù)的導(dǎo)數(shù)。分配給控制點(diǎn)的方向角度可以隨與目標(biāo)點(diǎn)的距離增加而增大或減小??s放路徑上多個(gè)控制點(diǎn)中的每個(gè)點(diǎn)的角度α應(yīng)該被選擇以使得每次將3D空間投影到觀看面上時(shí),目標(biāo)點(diǎn)都被投影到觀看面上。在一個(gè)實(shí)施例中,縮放路徑上多個(gè)點(diǎn)中的每個(gè)點(diǎn)的角度α被選擇以使得每次將 3D空間投影到觀看面上時(shí),目標(biāo)點(diǎn)在觀看面上被單調(diào)地移向或者移離觀看面上的固定點(diǎn)。 在另一實(shí)施例中,縮放路徑上多個(gè)點(diǎn)中的每個(gè)點(diǎn)的角度α被選擇以使得每次將3D空間投影到觀看面上時(shí),基平面的線段被投影到2D觀看面上的固定線段。在另一實(shí)施例中,角度 α具有在每對(duì)控制點(diǎn)Pk和Pw之間的連續(xù)的導(dǎo)數(shù)。但是,在另一實(shí)施例中,當(dāng)k= 1,...η 時(shí),α k < α k+1或者當(dāng)k = 1到η時(shí),α k > α k+1。在另一實(shí)施例中也可以如此。圖3a到3d根據(jù)本發(fā)明描述了當(dāng)觀看點(diǎn)移向目標(biāo)點(diǎn)時(shí),在縮放路徑上的三個(gè)獨(dú)立點(diǎn)處,2D面在顯示設(shè)備上的一系列屏幕快照。幾個(gè)頁(yè)200位于基平面60中。在頁(yè)204中選擇目標(biāo)點(diǎn)202。圖3a示出了從距離目標(biāo)點(diǎn)202較遠(yuǎn)處的3D空間投影。隨著觀看點(diǎn)接近目標(biāo)點(diǎn),投影到觀看面的3D空間的量減小投影到觀看面上的頁(yè)200的數(shù)量減小)。圖:3b,3c 和3d屏幕快照中的每個(gè)示出了觀看面上目標(biāo)點(diǎn)202的當(dāng)前位置和先前屏幕快照中的目標(biāo)點(diǎn)的位置。(圖3a中目標(biāo)點(diǎn)的位置標(biāo)記為如圖北到d中的“A”,圖北中的目標(biāo)點(diǎn)的位置標(biāo)記為如圖3c到d中的“B”,以及圖3c中目標(biāo)點(diǎn)的位置標(biāo)記為如圖3d中的“C”)。因此, 目標(biāo)點(diǎn)202被看作是單調(diào)地移向觀看面上的固定點(diǎn)(固定點(diǎn)被投影到屏幕快照的中心)。 當(dāng)縮放的推進(jìn)過(guò)程中,頁(yè)204的底部邊緣保持與屏幕快照的邊緣平行。在從圖3d快照推進(jìn)時(shí),為了提高頁(yè)內(nèi)容的清晰度,頁(yè)204看上去被旋轉(zhuǎn)以使得能從上觀看。在本發(fā)明這個(gè)方面的多個(gè)實(shí)施例中,縮放路徑上多個(gè)點(diǎn)中的每個(gè)點(diǎn)的角度α被選擇以提供審美上的可接受的縮放效果。例如,角度α可以被選擇以使得每次將3D空間投影到觀看面上時(shí),將目標(biāo)點(diǎn)連續(xù)地投影到觀看面上??s放路徑上多個(gè)點(diǎn)中的每個(gè)點(diǎn)的角度α可被選擇以使得每次將3D空間投影到觀看面上時(shí),目標(biāo)點(diǎn)的投影在觀看面上被單調(diào)地移向或者移離觀看面上的固定點(diǎn)??s放路徑上多個(gè)控制點(diǎn)中的每個(gè)點(diǎn)的角度α可被選擇以使得每次將3D空間投影到觀看面上時(shí),基平面中的線段被投影到2D觀看面的固定線段。角度α可被選擇以使得α在每對(duì)點(diǎn)Pk和Pw之間具有連續(xù)的導(dǎo)數(shù)。縮放路徑上點(diǎn)的角度α可以隨與目標(biāo)點(diǎn)的距離減小而單調(diào)地增加或者單調(diào)減小。增量步幅的長(zhǎng)度可以具有根據(jù)以下任意一個(gè)或多個(gè)預(yù)定的標(biāo)準(zhǔn)而選擇的長(zhǎng)度,比如(a)角度α的改變率是沿著至少部分縮放路徑的常量;(b)觀看點(diǎn)沿著至少部分縮放路徑的速度是常量;(c)觀看點(diǎn)在平面上的投影沿著至少部分縮放路徑的速度是常量。也應(yīng)該理解,根據(jù)本發(fā)明的系統(tǒng)可為適當(dāng)?shù)木幊逃?jì)算機(jī)。同樣地,本發(fā)明所涵蓋計(jì)算機(jī)可讀的計(jì)算機(jī)程序以用于執(zhí)行本發(fā)明的方法。本發(fā)明還涵蓋記錄有指令程序的機(jī)器可讀存儲(chǔ)器,該指令可由機(jī)器執(zhí)行,以便執(zhí)行本發(fā)明的方法。
權(quán)利要求
1.一種用于確定三維3D虛擬空間中的預(yù)定觀看點(diǎn)Pn+1與3D空間中的目標(biāo)點(diǎn)Ptl之間的縮放路徑的方法,目標(biāo)點(diǎn)具有在3D空間中的η ^ 2個(gè)預(yù)定控制點(diǎn)P1,. . . Pn, η為整數(shù),對(duì)于所有的1 < k < η-1,3D空間中的Pk到P0之間的距離小于3D空間中的Pk+1到P0之間的距離,點(diǎn)Ptl. . . Pn是共面的,該方法包括(a)在觀看點(diǎn)Pn+1到控制點(diǎn)P1之間,生成3D空間中的非直線縮放路徑,縮放路徑通過(guò)點(diǎn)P1,. . .,Pm,其中m為整數(shù),滿足1彡m彡n,其中縮放路徑到包含點(diǎn)Ptl,. . . Pn的平面的投影具有連續(xù)的導(dǎo)數(shù)。
2.根據(jù)權(quán)利要求1所述的方法,其中,縮放路徑上的至少一個(gè)點(diǎn)正好具有與選自控制點(diǎn)Pm+1,...,Pn的控制點(diǎn)相同的兩個(gè)坐標(biāo)。
3.根據(jù)權(quán)利要求1所述的方法,其中,通過(guò)針對(duì)k= 1到m-1,在Pk與Pk+1之間執(zhí)行多項(xiàng)式內(nèi)插,來(lái)獲得縮放路徑的包含點(diǎn)P1...,Pffl的一部分。
4.根據(jù)前述任一權(quán)利要求所述的方法,其中,縮放路徑是具有預(yù)定度的樣條,在包括點(diǎn) Pn+1及點(diǎn)Ptl,...,Pn中的至少兩個(gè)點(diǎn)的計(jì)算中獲得樣條。
5.根據(jù)前述任一權(quán)利要求所述的方法,其中,對(duì)于所有目標(biāo)點(diǎn),3D空間中的控制點(diǎn)相對(duì)于目標(biāo)點(diǎn)的位置是固定的。
6.一種用于在三維3D虛擬空間中的目標(biāo)點(diǎn)Ptl與3D空間中的預(yù)定觀看點(diǎn)Pn+1之間進(jìn)行縮放的方法,目標(biāo)點(diǎn)具有在3D空間中的η彡2個(gè)預(yù)定控制點(diǎn)P1,. . . Pn, η為整數(shù),對(duì)于所有的1 < k < n-l,3D空間中Pk到P。之間的距離小于3D空間中Pk+1到P0之間的距離,3D 空間中的點(diǎn)Pci, ...,Pn是共面的,當(dāng)k = 1到n+1時(shí),點(diǎn)Pk具有位于與點(diǎn)Ptl,. . . Pn的平面平行的平面中的預(yù)定的觀看線,當(dāng)k = 1到n+1時(shí),相對(duì)于點(diǎn)Ptl,...Pn的平面中的固定線, 點(diǎn)Pk的觀看線具有由角度α k確定的方向,對(duì)于k = 1,. . . n+1,該方法包括(a)利用根據(jù)權(quán)利要求1至4中任意一項(xiàng)的方法,在預(yù)定觀看點(diǎn)Pn+1與控制點(diǎn)P1之間生成3D空間中的非直線縮放路徑;(b)為縮放路徑上的多個(gè)點(diǎn)中的每個(gè)點(diǎn)分配位于與點(diǎn)Ptl,.. . Pn的平面平行的平面中并且具有觀看角度的觀看線,相對(duì)于所述固定線,所述觀看角度具有由角度α規(guī)定的方向, 使得對(duì)于縮放路徑上的任何一個(gè)點(diǎn)Pk,分配給點(diǎn)Pk的觀看角度為α k ;(c)設(shè)置預(yù)定觀看點(diǎn)或點(diǎn)P1為當(dāng)前觀看點(diǎn);(d)將2D觀看面定位在當(dāng)前觀看點(diǎn)Pn+1與目標(biāo)點(diǎn)之間,其中當(dāng)前觀看點(diǎn)Pn+1的觀看線指向觀看面上的預(yù)定固定點(diǎn),并且所述固定點(diǎn)與初始點(diǎn)相隔預(yù)定距離;(e)將3D空間的至少一部分投影到觀看面;(f)將當(dāng)前觀看點(diǎn)沿著縮放路徑移動(dòng)一個(gè)增量步幅以確定新的當(dāng)前觀看點(diǎn);(g)定位觀看面以使得新的當(dāng)前觀看點(diǎn)的觀看線指向觀看面上的固定點(diǎn),以及使得新的當(dāng)前觀看點(diǎn)和固定點(diǎn)之間的距離為預(yù)定距離;(h)將3D空間的至少一部分投影到觀看面;(i)在顯示設(shè)備上顯示觀看面上的投影;以及(j)根據(jù)需要重復(fù)步驟(f)到(i),直到當(dāng)前觀看點(diǎn)是點(diǎn)P1或點(diǎn)Pn+1。
7.根據(jù)權(quán)利要求5所述的方法,其中,當(dāng)每次執(zhí)行權(quán)利要求5中的步驟(h)時(shí),縮放路徑中多個(gè)點(diǎn)的每個(gè)點(diǎn)的角度α被選擇以使目標(biāo)點(diǎn)被投影到觀看面上。
8.根據(jù)權(quán)利要求7所述的方法,其中,在重復(fù)執(zhí)行權(quán)利要求4中的步驟(f)到⑴期間,目標(biāo)點(diǎn)的投影在觀看面上單調(diào)地移向或移離觀看面上的固定點(diǎn)。
9.根據(jù)權(quán)利要求6至8中任意一項(xiàng)所述的方法,其中,當(dāng)每次執(zhí)行權(quán)利要求4的步驟 (h)時(shí),縮放路徑中多個(gè)點(diǎn)的每個(gè)點(diǎn)的角度α被選擇以使3D空間中的線段被投影到2D觀看面上的固定線段上。
10.根據(jù)權(quán)利要求6至8中任意一項(xiàng)所述的方法,其中,角度α在每對(duì)點(diǎn)P1^nPkMi 間具有連續(xù)的導(dǎo)數(shù)。
11.根據(jù)權(quán)利要求5至8中任意一項(xiàng)所述的方法,其中,當(dāng)k=l,...n時(shí),Cik< α k+1, 或當(dāng)k= 1 到η 時(shí),ak> ak+1。
12.根據(jù)權(quán)利要求10所述的方法,其中,縮放路徑上的點(diǎn)的角度α隨著與目標(biāo)點(diǎn)的距離縮短而單調(diào)增加或單調(diào)減小。
13.根據(jù)權(quán)利要求6至12中任意一項(xiàng)所述的方法,其中,在權(quán)利要求5的步驟(h)中, 通過(guò)由觀看面和當(dāng)前觀看點(diǎn)的觀看線確定的透視投影將3D空間投影到觀看面上。
14.根據(jù)權(quán)利要求6至14中任意一項(xiàng)所述的方法,其中,增量步幅具有根據(jù)以下標(biāo)準(zhǔn)中的任意一個(gè)或多個(gè)而選擇的長(zhǎng)度(a)角度α的改變率是沿著至少部分縮放路徑的常量;(b)觀看點(diǎn)沿著至少部分縮放路徑的速度是常量;(c)觀看點(diǎn)在平面上的投影沿著至少部分縮放路徑的速度是常量。
全文摘要
本發(fā)明提供一種用于構(gòu)建三維(3D)虛擬空間中預(yù)定觀看點(diǎn)Pn+1和3D空間中目標(biāo)點(diǎn)P0之間的縮放路徑的方法,以及用于沿著縮放路徑放大或縮小的方法。目標(biāo)點(diǎn)在3D空間分配有控制點(diǎn),本發(fā)明的縮放路徑為非直線并通過(guò)至少一個(gè)控制點(diǎn)。在縮放期間,連續(xù)地選擇觀看方向以提供審美上可接受的縮放效果。
文檔編號(hào)G06T17/00GK102301400SQ200980155820
公開(kāi)日2011年12月28日 申請(qǐng)日期2009年12月1日 優(yōu)先權(quán)日2008年12月1日
發(fā)明者約弗·塞菲 申請(qǐng)人:維卓多密有限公司