本發(fā)明涉及繪圖技術(shù)領(lǐng)域,尤其涉及立體圖形繪制方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
目前,在教學(xué)、繪圖等場(chǎng)景中,往往會(huì)涉及繪制立體圖形。立體圖形可以理解為將三維體按指定投影條件投影到二維平面上所形成的圖形,也可以理解為在二維平面上以特定視角展示三維體而繪制的圖形。其中,三維體可以是圓柱體、圓錐體、兩個(gè)底面為正多邊形且底面平行的柱體等。
相關(guān)技術(shù)中,可以在繪圖軟件中預(yù)存立體圖形樣本,根據(jù)用戶操作指令從繪圖軟件的工具欄中拖出立體圖形樣本進(jìn)行位置和大小調(diào)整,從而獲得立體圖形。又如,可以采用兩點(diǎn)法繪制立體圖形,如圖1所示,圖1是相關(guān)技術(shù)中利用兩點(diǎn)法繪制圓柱體圖形的示意圖。根據(jù)用戶操作指令在平面中確定兩個(gè)點(diǎn):p1和p2,將兩個(gè)坐標(biāo)點(diǎn)作為對(duì)角頂點(diǎn),并基于預(yù)設(shè)規(guī)則,確定其他兩個(gè)頂點(diǎn)坐標(biāo),獲得用于限定待繪制圓柱體圖形大小的矩形p1p4p2p3。根據(jù)所確定的矩形反推一個(gè)圓柱體圖形,圓柱體圖形在矩形p1p4p2p3內(nèi),從而實(shí)現(xiàn)圓柱體圖形的繪制。
可見,上述方法對(duì)操作指令的響應(yīng)效果差,根據(jù)操作指令繪制出的立體圖形與用戶預(yù)期繪制出的立體圖形具有差距,導(dǎo)致繪制出的立體圖形準(zhǔn)確度低。
技術(shù)實(shí)現(xiàn)要素:
基于此,本發(fā)明提供了立體圖形繪制方法、裝置、設(shè)備及存儲(chǔ)介質(zhì),以解決對(duì)操作指令的響應(yīng)效果差,導(dǎo)致繪制出的立體圖形準(zhǔn)確度低的缺陷。
根據(jù)本發(fā)明實(shí)施例的第一方面,提供一種立體圖形繪制方法,所述方法包括:
獲取第一點(diǎn)坐標(biāo)、第二點(diǎn)坐標(biāo)、第三點(diǎn)坐標(biāo);
將所述第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)分別作為待繪制立體圖形中底面輪廓的中心點(diǎn)坐標(biāo)和輪廓點(diǎn)坐標(biāo),并結(jié)合預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系,確定待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例;
基于所述第一縮放比例繪制所述待繪制立體圖形的底面輪廓;
根據(jù)第二點(diǎn)坐標(biāo)和第三點(diǎn)坐標(biāo)的距離、以及所述標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向,繪制所示待繪制立體圖中其他面的輪廓。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述標(biāo)準(zhǔn)立體圖形是在二維平面上以預(yù)設(shè)視角展示標(biāo)準(zhǔn)三維體的圖形,所述標(biāo)準(zhǔn)三維體包括圓柱體、圓錐體、或兩底面平行且兩底面為相同正多邊形的柱體,若所述標(biāo)準(zhǔn)三維體為圓柱體或圓錐體,所述側(cè)面輪廓為輪廓母線;若所述標(biāo)準(zhǔn)三維體為兩底面平行且兩底面為相同正多邊形的柱體,所述側(cè)面輪廓為側(cè)面棱線。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系包括:樣本長(zhǎng)度和樣本夾角的對(duì)應(yīng)關(guān)系,所述樣本長(zhǎng)度是標(biāo)準(zhǔn)立體圖形中指定輪廓點(diǎn)與中心點(diǎn)構(gòu)成的線段的長(zhǎng)度,所述樣本夾角是所述線段與預(yù)設(shè)的參照線的夾角。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述樣本長(zhǎng)度和樣本夾角的對(duì)應(yīng)關(guān)系的確定步驟包括:
將所述標(biāo)準(zhǔn)三維體的底面輪廓進(jìn)行等分,獲得至少兩個(gè)等分點(diǎn);
基于預(yù)設(shè)視角對(duì)應(yīng)的投影矩陣,確定所述等分點(diǎn)在預(yù)設(shè)視角所對(duì)應(yīng)的投影平面的投影點(diǎn)、以及標(biāo)準(zhǔn)三維體底面中心在預(yù)設(shè)視角所對(duì)應(yīng)的投影平面的投影點(diǎn),將該等分點(diǎn)對(duì)應(yīng)的投影點(diǎn)確定為所述指定輪廓點(diǎn),將中心對(duì)應(yīng)的投影點(diǎn)確定為所述中心點(diǎn);
基于所確定的指定輪廓點(diǎn)和中心點(diǎn),確定標(biāo)準(zhǔn)立體圖形中所述指定輪廓點(diǎn)與中心點(diǎn)構(gòu)成的線段的樣本長(zhǎng)度、以及所述線段與所述參照線的樣本夾角。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述將所述第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)分別作為待繪制立體圖形中底面輪廓的中心點(diǎn)坐標(biāo)和輪廓點(diǎn)坐標(biāo),并結(jié)合預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系,確定待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例,包括:
計(jì)算所述第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)構(gòu)成的目標(biāo)線段的目標(biāo)長(zhǎng)度、以及所述目標(biāo)線段與所述參照線的目標(biāo)夾角;
從所述樣本夾角中,篩選出與所述目標(biāo)夾角差距最小的樣本夾角;
將所述目標(biāo)長(zhǎng)度與篩選出的樣本夾角所對(duì)應(yīng)的樣本長(zhǎng)度相比,獲得待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系還包括:繪制所述標(biāo)準(zhǔn)立體圖形中底面輪廓所需的繪制信息;若所述標(biāo)準(zhǔn)三維體為圓柱體或圓錐體,所述繪制信息包括所述標(biāo)準(zhǔn)立體圖形中底面輪廓的最長(zhǎng)半徑以及最短半徑的長(zhǎng)度和延伸方向;若所述標(biāo)準(zhǔn)三維體為兩底面平行且兩底面為相同正多邊形的柱體,所述繪制信息包括所述標(biāo)準(zhǔn)立體圖形中底面輪廓的中心點(diǎn)到各頂點(diǎn)的長(zhǎng)度和方向;
所述基于所述第一縮放比例繪制所述待繪制立體圖形的底面輪廓,包括:
基于所述第一縮放比例對(duì)所述繪制信息中的長(zhǎng)度進(jìn)行縮放;
利用縮放獲得的長(zhǎng)度以及繪制信息中的方向,繪制所述待繪制立體圖形的底面輪廓。
在一個(gè)可選的實(shí)現(xiàn)方式中,若所述標(biāo)準(zhǔn)三維體為圓柱體或兩底面平行且兩底面為相同正多邊形的柱體,所述標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向的確定步驟包括:
基于所述標(biāo)準(zhǔn)立體圖形的上底面輪廓中指定輪廓點(diǎn)的坐標(biāo)、以及下底面輪廓中指定輪廓點(diǎn)的坐標(biāo),確定標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向。
在一個(gè)可選的實(shí)現(xiàn)方式中,若所述標(biāo)準(zhǔn)三維體為圓錐體,所述標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向的確定步驟包括:
基于所述標(biāo)準(zhǔn)立體圖形中底面輪廓中指定輪廓點(diǎn)的坐標(biāo)、以及所述標(biāo)準(zhǔn)立體圖形的頂點(diǎn)坐標(biāo),確定標(biāo)準(zhǔn)立體圖形中輪廓母線的延伸方向。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述方法還包括:
根據(jù)第二點(diǎn)坐標(biāo)和第三點(diǎn)坐標(biāo)的距離、以及所述標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的長(zhǎng)度和延伸方向,確定待繪制立體圖形的側(cè)面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的側(cè)面輪廓的第二縮放比例;
獲取利用三維繪圖引擎繪制所述標(biāo)準(zhǔn)立體圖形時(shí)所需的三維參數(shù);
基于所述第一縮放比例和所述第二縮放比例,對(duì)所述三維參數(shù)進(jìn)行縮放;
將縮放獲得的三維參數(shù)輸入三維繪圖引擎。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述方法還包括:
基于所述三維繪圖引擎,利用縮放獲得的三維參數(shù)繪制所述待繪制立體圖形;
接收對(duì)所述待繪制立體圖形的旋轉(zhuǎn)操作指令;
根據(jù)所述旋轉(zhuǎn)操作指令變換所述待繪制立體圖形所對(duì)應(yīng)的三維體的顯示視角;
繪制所述三維體在該顯示視角下的立體圖形。
根據(jù)本發(fā)明實(shí)施例的第二方面,提供一種立體圖形繪制裝置,所述裝置包括:
坐標(biāo)獲取模塊,用于獲取第一點(diǎn)坐標(biāo)、第二點(diǎn)坐標(biāo)、第三點(diǎn)坐標(biāo);
比例確定模塊,用于將所述第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)分別作為待繪制立體圖形中底面輪廓的中心點(diǎn)坐標(biāo)和輪廓點(diǎn)坐標(biāo),并結(jié)合預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系,確定待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例;
圖形繪制模塊,用于基于所述第一縮放比例繪制所述待繪制立體圖形的底面輪廓;根據(jù)第二點(diǎn)坐標(biāo)和第三點(diǎn)坐標(biāo)的距離、以及所述標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向,繪制所示待繪制立體圖中其他面的輪廓。
根據(jù)本發(fā)明實(shí)施例的第三方面,提供一種電子設(shè)備,包括:
處理器;
用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;
其中,所述處理器被配置為:
獲取第一點(diǎn)坐標(biāo)、第二點(diǎn)坐標(biāo)、第三點(diǎn)坐標(biāo);
將所述第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)分別作為待繪制立體圖形中底面輪廓的中心點(diǎn)坐標(biāo)和輪廓點(diǎn)坐標(biāo),并結(jié)合預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系,確定待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例;
基于所述第一縮放比例繪制所述待繪制立體圖形的底面輪廓;
根據(jù)第二點(diǎn)坐標(biāo)和第三點(diǎn)坐標(biāo)的距離、以及所述標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向,繪制所示待繪制立體圖中其他面的輪廓。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述電子設(shè)備為智能平板。
根據(jù)本發(fā)明實(shí)施例的第四方面,提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)中存儲(chǔ)有程序指令,所述程序指令包括:
獲取第一點(diǎn)坐標(biāo)、第二點(diǎn)坐標(biāo)、第三點(diǎn)坐標(biāo);
將所述第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)分別作為待繪制立體圖形中底面輪廓的中心點(diǎn)坐標(biāo)和輪廓點(diǎn)坐標(biāo),并結(jié)合預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系,確定待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例;
基于所述第一縮放比例繪制所述待繪制立體圖形的底面輪廓;
根據(jù)第二點(diǎn)坐標(biāo)和第三點(diǎn)坐標(biāo)的距離、以及所述標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向,繪制所示待繪制立體圖中其他面的輪廓。
應(yīng)用本發(fā)明實(shí)施例方案,通過兩點(diǎn)繪制立體圖形的一個(gè)底面輪廓,并通過第三點(diǎn)繪制立體圖形的其他面輪廓,從而實(shí)現(xiàn)立體圖形的繪制,由于用戶可以通過兩點(diǎn)控制立體圖形中底面輪廓大小,通過第三個(gè)點(diǎn)控制立體圖形中其他面輪廓,因此可以積極響應(yīng)繪圖指令,繪制出用戶期望繪制的立體圖形,進(jìn)而提高繪制立體圖形的準(zhǔn)確性。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本發(fā)明。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實(shí)施例,并與說明書一起用于解釋本發(fā)明的原理。
圖1是相關(guān)技術(shù)中利用兩點(diǎn)法繪制圓柱體圖形的示意圖。
圖2a是本發(fā)明根據(jù)一示例性實(shí)施例示出的一種立體圖形繪制方法的流程圖。
圖2b是本發(fā)明根據(jù)一示例性實(shí)施例示出的一種圓柱體圖形繪制示意圖。
圖2c是本發(fā)明根據(jù)一示例性實(shí)施例示出的一種圓錐體圖形繪制示意圖。
圖3a是本發(fā)明根據(jù)一示例性實(shí)施例示出的一種樣本數(shù)據(jù)組確定方法的流程圖。
圖3b是本發(fā)明根據(jù)一示例性實(shí)施例示出的一種指定輪廓點(diǎn)確定示意圖。
圖3c是本發(fā)明根據(jù)一示例性實(shí)施例示出的一種圓柱體圖形對(duì)照示意圖。
圖4是本發(fā)明根據(jù)一示例性實(shí)施例示出的另一種立體圖形繪制方法的流程圖。
圖5是本發(fā)明根據(jù)一示例性實(shí)施例示出的立體圖形繪制裝置所在計(jì)算機(jī)設(shè)備的一種硬件結(jié)構(gòu)圖。
圖6是本發(fā)明根據(jù)一示例性實(shí)施例示出的一種立體圖形繪制裝置的框圖。
具體實(shí)施方式
這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
在本發(fā)明使用的術(shù)語是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本發(fā)明。在本發(fā)明和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”是指并包含一個(gè)或多個(gè)相關(guān)聯(lián)的列出項(xiàng)目的任何或所有可能組合。
應(yīng)當(dāng)理解,盡管在本發(fā)明可能采用術(shù)語第一、第二、第三等來描述各種信息,但這些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本發(fā)明范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時(shí)”或“當(dāng)……時(shí)”或“響應(yīng)于確定”。
為了適應(yīng)教學(xué)等應(yīng)用場(chǎng)景的需求,往往采用偽3d的方式在二維平面上利用二維平面圖展示三維體,可以將二維平面上的該圖稱為立體圖形。相關(guān)技術(shù)中往往采用兩點(diǎn)法繪制立體圖形,如圖1所示,根據(jù)用戶操作指令在屏幕中確定p1點(diǎn)和p2點(diǎn),將兩個(gè)坐標(biāo)點(diǎn)作為一對(duì)對(duì)角頂點(diǎn),并基于預(yù)設(shè)規(guī)則,確定其他兩個(gè)頂點(diǎn)坐標(biāo)p3點(diǎn)和p4點(diǎn),獲得用于限定待繪制圓柱體圖形大小的矩形p1p4p2p3。根據(jù)所確定的矩形反推一個(gè)圓柱體圖形,圓柱體圖形中上下底面中的某輪廓點(diǎn)以及母線在矩形p1p4p2p3的邊上,從而實(shí)現(xiàn)圓柱體圖形的繪制??梢?,當(dāng)用戶指定p1和p2點(diǎn)后,用戶才能看到繪制獲得的圓柱體圖形,用戶不能很好的通過控制兩個(gè)點(diǎn)繪制出期望的圓柱體圖形,其他立體圖形同理,因此采用兩點(diǎn)法繪制出的立體圖形與用戶預(yù)期繪制出的立體圖形具有差距,導(dǎo)致繪制出的立體圖形準(zhǔn)確度低。當(dāng)差距較大時(shí),用戶需要?jiǎng)h除后重新繪制,從而導(dǎo)致繪制效率低。
基于此,為了避免繪制出的立體圖形準(zhǔn)確度低的缺陷,本發(fā)明提供立體圖形繪制方法,可以通過兩點(diǎn)繪制立體圖形的一個(gè)底面輪廓,并通過第三點(diǎn)繪制立體圖形的其他面輪廓,從而實(shí)現(xiàn)立體圖形的繪制,由于用戶可以通過兩點(diǎn)控制立體圖形中底面輪廓大小,通過第三個(gè)點(diǎn)控制立體圖形中其他面輪廓,因此可以積極響應(yīng)繪圖指令,繪制出用戶期望繪制的立體圖形,進(jìn)而提高繪制立體圖形的準(zhǔn)確性。接下來結(jié)合附圖對(duì)本發(fā)明方案進(jìn)行詳細(xì)說明。
如圖2a所示,圖2a是本發(fā)明根據(jù)一示例性實(shí)施例示出的一種立體圖形繪制方法的流程圖,可以包括以下步驟201至步驟204:
在步驟201中,獲取第一點(diǎn)坐標(biāo)、第二點(diǎn)坐標(biāo)、第三點(diǎn)坐標(biāo)。
在步驟202中,將所述第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)分別作為待繪制立體圖形中底面輪廓的中心點(diǎn)坐標(biāo)和輪廓點(diǎn)坐標(biāo),并結(jié)合預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系,確定待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例。
在步驟203中,基于所述第一縮放比例繪制所述待繪制立體圖形的底面輪廓。
在步驟204中,根據(jù)第二點(diǎn)坐標(biāo)和第三點(diǎn)坐標(biāo)的距離、以及所述標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向,繪制所示待繪制立體圖中其他面的輪廓。
本發(fā)明實(shí)施例可以應(yīng)用在智能設(shè)備中,智能設(shè)備可以是智能平板、智能手機(jī)、智能學(xué)習(xí)機(jī)、平板電腦、pda(personaldigitalassistant,個(gè)人數(shù)字助理)或pc(personalcomputer,個(gè)人計(jì)算機(jī))等具有繪圖功能的電子設(shè)備。用戶可以利用手指或觸控筆等在智能設(shè)備的觸摸屏上進(jìn)行圖形繪制,也可以利用鼠標(biāo)控制智能設(shè)備屏幕上的光標(biāo)進(jìn)行圖形繪制,智能設(shè)備可以根據(jù)用戶操作產(chǎn)生繪制指令,并根據(jù)繪制指令確定三點(diǎn)坐標(biāo),進(jìn)而進(jìn)行立體圖形繪制。此外,用戶還可以操作與智能設(shè)備綁定的關(guān)聯(lián)設(shè)備,該關(guān)聯(lián)設(shè)備將繪制指令傳送至智能設(shè)備,通過智能設(shè)備繪制立體圖形等。
其中,立體圖形可以理解為將三維體按指定投影條件投影到二維平面上所形成的圖形,也可以理解為在二維平面上以預(yù)設(shè)視角展示三維體而繪制的圖形。以不同投影條件投影或不同視角展示三維體獲得的立體圖形可能不同。投影條件包括三維體的放置角度、三維體與投影設(shè)備的距離、投影方向以及投影方式等。投影設(shè)備可以是相機(jī)等設(shè)備。投影方式包括正交投影等方式。投影方向包括朝向xoy面進(jìn)行投影、朝向xoz面進(jìn)行投影以及朝向yoz面進(jìn)行投影等,在此不做限制。指定投影條件與預(yù)設(shè)視角對(duì)應(yīng),按指定投影條件投影到二維平面上所形成的圖形,可以表示為在二維平面上以指定視角展示三維體而繪制的圖形。
進(jìn)一步的,為了在二維平面中體現(xiàn)出更加真實(shí)的三維體,可以根據(jù)立體圖形中每條輪廓線的可見性,將可見輪廓線和不可見輪廓線區(qū)分顯示。
例如,區(qū)分顯示可以是:分別用實(shí)線和虛線對(duì)可見輪廓線和不可見輪廓線區(qū)分顯示;或,分別用不同透明度對(duì)可見輪廓線與不可見輪廓線區(qū)分顯示;或,分別用不同灰度對(duì)可見輪廓線與不可見輪廓線區(qū)分顯示,其中,上述灰度可以是同一顏色的不同灰度也可以是不同顏色的不同灰度;或,分別用不同顏色對(duì)可見輪廓線與不可見輪廓線區(qū)分顯示;或,分別用線條的不同粗細(xì)對(duì)可見輪廓線與不可見輪廓線區(qū)分顯示。
可見,根據(jù)立體圖形中每條輪廓線的可見性,將可見輪廓線和不可見輪廓線區(qū)分顯示,可以使繪制出的立體圖形更加逼真,給用戶帶來視覺享受。
本發(fā)明實(shí)施例中,所述標(biāo)準(zhǔn)立體圖形是在二維平面上以預(yù)設(shè)視角展示標(biāo)準(zhǔn)三維體的圖形,不同視角展示標(biāo)準(zhǔn)三維體時(shí)所對(duì)應(yīng)的標(biāo)準(zhǔn)立體圖形可能不同。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述標(biāo)準(zhǔn)三維體可以是圓柱體,也可以是圓錐體,還可以是兩底面平行且兩底面為相同正多邊形的柱體等。
若標(biāo)準(zhǔn)三維體為圓柱體,則側(cè)面輪廓為輪廓母線,待繪制立體圖形即為待繪制圓柱體圖形。在繪制待繪制圓柱體圖形時(shí),可以根據(jù)前面兩個(gè)點(diǎn)繪制一個(gè)底面輪廓,然后根據(jù)第三個(gè)點(diǎn)繪制輪廓母線和另一個(gè)底面輪廓??梢?,通過本發(fā)明方案可以實(shí)現(xiàn)圓柱體圖形的繪制。
若標(biāo)準(zhǔn)三維體為圓錐體,則側(cè)面輪廓為輪廓母線,待繪制立體圖形即為待繪制圓錐體圖形。在繪制待繪制圓錐體圖形時(shí),可以根據(jù)前面兩個(gè)點(diǎn)繪制底面輪廓,然后根據(jù)第三個(gè)點(diǎn)繪制輪廓母線??梢姡ㄟ^本發(fā)明方案可以實(shí)現(xiàn)圓錐體圖形的繪制。
若標(biāo)準(zhǔn)三維體為兩底面平行且兩底面為相同正多邊形的柱體,例如正方體、兩底面平行且兩底面為相同正六邊形的柱體等,則側(cè)面輪廓為側(cè)面棱線,待繪制立體圖形即為待繪制柱體圖形。在繪制待繪制柱體圖形時(shí),可以根據(jù)前面兩個(gè)點(diǎn)繪制底面多邊形輪廓,然后根據(jù)第三個(gè)點(diǎn)繪制側(cè)面棱線。可見,通過本發(fā)明方案可以實(shí)現(xiàn)特定柱體圖形的繪制。
關(guān)于坐標(biāo)點(diǎn)獲取與圖形繪制的順序,可以在獲取到第一點(diǎn)坐標(biāo)、第二點(diǎn)坐標(biāo)以及第三點(diǎn)坐標(biāo)以后,再進(jìn)行立體圖形所有面的繪制;也可以在獲取第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)后,先進(jìn)行立體圖形中一個(gè)底面繪制,然后獲取第三點(diǎn)坐標(biāo),并進(jìn)行立體圖形其他面的繪制。
關(guān)于點(diǎn)坐標(biāo)的確定,在一個(gè)例子中,三個(gè)點(diǎn)坐標(biāo)可以通過點(diǎn)擊指令所對(duì)應(yīng)的點(diǎn)擊位置確定。其中,點(diǎn)擊指令可以是智能設(shè)備或與智能設(shè)備綁定的關(guān)聯(lián)設(shè)備上:鼠標(biāo)點(diǎn)擊指令、手指點(diǎn)擊指令、或觸摸筆點(diǎn)擊指令等。若點(diǎn)擊指令在關(guān)聯(lián)設(shè)備上,關(guān)聯(lián)設(shè)備可以將攜帶三個(gè)點(diǎn)坐標(biāo)的繪制指令發(fā)送至智能設(shè)備等。用戶可以分別點(diǎn)擊三個(gè)不連續(xù)的點(diǎn),設(shè)備根據(jù)點(diǎn)擊順序,將三個(gè)不連續(xù)的點(diǎn)分別確定為第一點(diǎn)、第二點(diǎn)、第三點(diǎn)。例如,根據(jù)第一個(gè)點(diǎn)擊指令,獲取第一點(diǎn)坐標(biāo),根據(jù)第二個(gè)點(diǎn)擊指令,獲取第二點(diǎn)坐標(biāo),根據(jù)第三個(gè)點(diǎn)擊指令,獲取第三點(diǎn)坐標(biāo)。
上述方式雖然可以通過三個(gè)點(diǎn)確定立體圖形,但在繪制過程中,第一點(diǎn)坐標(biāo)、第二點(diǎn)坐標(biāo)以及第三點(diǎn)坐標(biāo)均是通過點(diǎn)擊操作直接確定,而在第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)確定后,則無法修改立體圖形中底面輪廓的大小,在第三點(diǎn)坐標(biāo)確定后,則無法修改立體圖形的其他面輪廓,為了克服這種缺陷,本發(fā)明實(shí)施例還提供另一種實(shí)現(xiàn)方式,可以動(dòng)態(tài)調(diào)整第二點(diǎn)坐標(biāo),以實(shí)現(xiàn)動(dòng)態(tài)調(diào)整立體圖形中底面輪廓的大小,在接收到第二點(diǎn)確認(rèn)指令時(shí),將此時(shí)的坐標(biāo)作為最終的第二點(diǎn)坐標(biāo),以實(shí)現(xiàn)底面輪廓的最終確認(rèn)。另外,還可以動(dòng)態(tài)調(diào)整第三點(diǎn)坐標(biāo),以實(shí)現(xiàn)動(dòng)態(tài)調(diào)整立體圖形中其他面輪廓,在接收到第三點(diǎn)確認(rèn)指令時(shí),將此時(shí)的坐標(biāo)作為最終的第三點(diǎn)坐標(biāo),以實(shí)現(xiàn)立體圖形中其他面輪廓的最終確認(rèn)。
本實(shí)現(xiàn)方式中,可以通過拖拽(牽引、滑動(dòng)、移動(dòng))的方式繪制立體圖形。在繪制過程中,將用戶首次觸發(fā)的點(diǎn)作為第一點(diǎn),從而獲得第一點(diǎn)坐標(biāo)。以第一點(diǎn)為起點(diǎn)進(jìn)行滑動(dòng),該滑動(dòng)軌跡中的任意點(diǎn)均可作為第二點(diǎn)。根據(jù)第一點(diǎn)和當(dāng)前第二點(diǎn)進(jìn)行底面輪廓的繪制,隨著第二點(diǎn)坐標(biāo)不斷變化,底面輪廓也隨之變化,通過調(diào)整第二點(diǎn)的坐標(biāo),可以繪制出用戶期望的底面輪廓。當(dāng)接收到第二點(diǎn)確認(rèn)指令時(shí),將此時(shí)的坐標(biāo)作為最終的第二點(diǎn)坐標(biāo),以實(shí)現(xiàn)底面輪廓的最終確認(rèn)。第二點(diǎn)確認(rèn)指令可以是鼠標(biāo)點(diǎn)擊指令、手指/觸摸筆點(diǎn)擊指令、或者按壓指令等。同理,可以以第二點(diǎn)為起點(diǎn)進(jìn)行滑動(dòng),該滑動(dòng)軌跡中的任意點(diǎn)均可以作為第三點(diǎn)。根據(jù)底面輪廓和第三點(diǎn)進(jìn)行其他面的繪制,隨著第三點(diǎn)坐標(biāo)不斷變化,其他面也隨之變化,通過調(diào)整第三點(diǎn)的坐標(biāo),可以繪制出用戶期望的高,從而獲得期望的立體圖形。
需要指出的是,確定第三點(diǎn)時(shí),也可以不以第二點(diǎn)為起點(diǎn)進(jìn)行滑動(dòng),而通過抬筆/抬手/松開鼠標(biāo)等方式重新選擇一個(gè)點(diǎn)為起點(diǎn)進(jìn)行滑動(dòng),該滑動(dòng)軌跡中的任意點(diǎn)均可以作為第三點(diǎn)。例如,選擇底面輪廓中心點(diǎn)(p1點(diǎn))為起點(diǎn)進(jìn)行滑動(dòng)。
為了方便理解,本發(fā)明實(shí)施例以兩個(gè)具體實(shí)施例進(jìn)行說明。如圖2b所示,圖2b是本發(fā)明根據(jù)一示例性實(shí)施例示出的一種圓柱體圖形繪制示意圖。第一點(diǎn)(p1點(diǎn))到最終的第二點(diǎn)(p2點(diǎn)),以及最終的第二點(diǎn)到最終的第三點(diǎn)(p3點(diǎn)),展示出來的圖呈現(xiàn)動(dòng)態(tài)效果,每更改第二點(diǎn)的坐標(biāo)均會(huì)重新繪制底面輪廓,每更改第三點(diǎn)的坐標(biāo)均會(huì)重新繪制其他面輪廓。在確定底面輪廓后,通過移動(dòng)第三點(diǎn),可以呈現(xiàn)出根據(jù)第二點(diǎn)和第三點(diǎn)的距離按標(biāo)準(zhǔn)圓柱體圖形中側(cè)面輪廓的延伸方向繪制待繪制圓柱體圖形中其他面輪廓的動(dòng)態(tài)效果。
為了示意方便,圖2b僅列舉繪制過程中六個(gè)狀態(tài)進(jìn)行示例說明。在繪圖過程中,用戶點(diǎn)擊的第一個(gè)點(diǎn)作為第一點(diǎn)(p1點(diǎn)),以p1點(diǎn)為起點(diǎn)進(jìn)行拖動(dòng),拖動(dòng)軌跡中任何一點(diǎn)均為第二點(diǎn),針對(duì)每個(gè)第二點(diǎn)均動(dòng)態(tài)繪制相應(yīng)的底面輪廓,圖2b以拖動(dòng)軌跡中p2’點(diǎn)為例進(jìn)行示例說明,根據(jù)p1和p2’繪制獲得如圖2b中狀態(tài)二所示的底面輪廓。當(dāng)拖動(dòng)到p2點(diǎn)時(shí),如果接收到確認(rèn)指令,則將該點(diǎn)確定為最終的第二點(diǎn),并繪制獲得最終的底面輪廓,如圖2b中狀態(tài)三所示。然后,以p1點(diǎn)為起點(diǎn)進(jìn)行拖動(dòng),拖動(dòng)軌跡中任何一點(diǎn)均為第三點(diǎn),針對(duì)每個(gè)第三點(diǎn)均動(dòng)態(tài)繪制相應(yīng)的圓柱體圖形的其他面輪廓,圖2b以拖動(dòng)軌跡中p3’點(diǎn)為例進(jìn)行示例說明,根據(jù)狀態(tài)三所示的底面輪廓和p3’點(diǎn)繪制獲得如圖2b中狀態(tài)四所示的圓柱體圖形。當(dāng)拖動(dòng)到p3點(diǎn)時(shí),根據(jù)狀態(tài)三所示的底面輪廓和p3點(diǎn)繪制獲得如圖2b中狀態(tài)五所示的圓柱體圖形。如果在p3點(diǎn)接收到確認(rèn)指令,則將該點(diǎn)確定為最終的第三點(diǎn),并繪制獲得最終的圓柱體圖形,如圖2b中狀態(tài)六所示。
如圖2c所示,圖2c是本發(fā)明根據(jù)一示例性實(shí)施例示出的一種圓錐體圖形繪制示意圖。第一點(diǎn)(p1點(diǎn))到最終的第二點(diǎn)(p2點(diǎn)),以及最終的第二點(diǎn)到最終的第三點(diǎn)(p3點(diǎn)),展示出來的圖呈現(xiàn)動(dòng)態(tài)效果,每更改第二點(diǎn)的坐標(biāo)均會(huì)重新繪制底面輪廓,每更改第三點(diǎn)的坐標(biāo)均會(huì)重新繪制其他面輪廓。在確定底面輪廓后,通過移動(dòng)第三點(diǎn),可以確定圓錐體圖形的高,并呈現(xiàn)出根據(jù)第二點(diǎn)和第三點(diǎn)的距離按標(biāo)準(zhǔn)圓錐體圖形中側(cè)面輪廓的延伸方向繪制待繪制圓錐體圖形中其他面輪廓的動(dòng)態(tài)效果。
接下來對(duì)步驟202至步驟204進(jìn)行介紹。
本發(fā)明實(shí)施例通過第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)、以及預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系,確定待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例,實(shí)現(xiàn)利用第一縮放比例繪制待繪制立體圖形的底面輪廓,并根據(jù)第二點(diǎn)坐標(biāo)和第三點(diǎn)坐標(biāo)的距離、以及標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向,繪制待繪制立體圖中其他面的輪廓。
首先,對(duì)預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系、以及標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向進(jìn)行介紹。
在將第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)分別作為待繪制立體圖形中底面輪廓的中心點(diǎn)坐標(biāo)和輪廓點(diǎn)坐標(biāo)時(shí),為了推測(cè)出在標(biāo)準(zhǔn)立體圖形中與第二點(diǎn)坐標(biāo)具有相似參照關(guān)系的指定輪廓點(diǎn),可以預(yù)先獲取標(biāo)準(zhǔn)立體圖形中底面輪廓上各指定輪廓點(diǎn)到中心點(diǎn)的樣本長(zhǎng)度、以及指定輪廓點(diǎn)與中心點(diǎn)構(gòu)成的線段相對(duì)于預(yù)設(shè)參照物的樣本參照關(guān)系。針對(duì)每個(gè)指定輪廓點(diǎn)可以設(shè)有相應(yīng)的參數(shù)組(樣本長(zhǎng)度,樣本參照關(guān)系)。
其中,指定輪廓點(diǎn)是標(biāo)準(zhǔn)立體圖形的底面輪廓上的輪廓點(diǎn),指定輪廓點(diǎn)的數(shù)量可以根據(jù)需求設(shè)定。指定輪廓點(diǎn)的數(shù)量決定了指定輪廓點(diǎn)的間距,進(jìn)而決定了指定輪廓點(diǎn)的密度,指定輪廓點(diǎn)的數(shù)量越大,推測(cè)出與第二點(diǎn)坐標(biāo)對(duì)應(yīng)的指定輪廓點(diǎn)與第二點(diǎn)坐標(biāo)具有的參照關(guān)系越相似。因此,在考慮智能設(shè)備處理性能等因素允許的情況下,指定輪廓點(diǎn)的數(shù)量盡量大,從而實(shí)現(xiàn)可以找到與參照關(guān)系更加近似的樣本參照關(guān)系,進(jìn)而繪制更加準(zhǔn)確的立體圖形。
中心點(diǎn)是標(biāo)準(zhǔn)立體圖形中底面輪廓的中心點(diǎn),例如,標(biāo)準(zhǔn)三維體為圓柱體或圓錐體時(shí),即標(biāo)準(zhǔn)立體圖形為標(biāo)準(zhǔn)圓柱體圖形或標(biāo)準(zhǔn)圓錐體圖形,則中心點(diǎn)為底面橢圓的中心,即標(biāo)準(zhǔn)圓柱體或標(biāo)準(zhǔn)圓錐體底面圓心在預(yù)設(shè)視角所對(duì)應(yīng)的投影平面的投影點(diǎn)。標(biāo)準(zhǔn)三維體為兩底面平行且兩底面為相同正多邊形的柱體時(shí),中心點(diǎn)為正多邊形的中心在預(yù)設(shè)視角所對(duì)應(yīng)的投影平面的投影點(diǎn)。
在獲取第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)后,可以確定第一點(diǎn)坐標(biāo)與第二點(diǎn)坐標(biāo)所構(gòu)成的目標(biāo)線段的目標(biāo)長(zhǎng)度、以及該目標(biāo)線段與預(yù)設(shè)參照物的參照關(guān)系;從預(yù)設(shè)的樣本長(zhǎng)度以及樣本參照關(guān)系中,篩選出與所述參照關(guān)系近似相同的樣本參照關(guān)系,并基于所述長(zhǎng)度以及篩選出的參照關(guān)系對(duì)應(yīng)的樣本長(zhǎng)度,確定待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例。
由上述實(shí)施例可見,通過參考同一預(yù)設(shè)參照物,可以建立標(biāo)準(zhǔn)立體圖形與第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)之間的關(guān)系,進(jìn)而確定待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例。
在一個(gè)例子中,所述預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系包括:樣本長(zhǎng)度和樣本夾角的對(duì)應(yīng)關(guān)系,所述樣本長(zhǎng)度是標(biāo)準(zhǔn)立體圖形中指定輪廓點(diǎn)與中心點(diǎn)構(gòu)成的線段的長(zhǎng)度,所述樣本夾角是所述線段與參照線的夾角。
在該實(shí)施例中,待繪制立體圖形所使用的第一二維坐標(biāo)系與標(biāo)準(zhǔn)立體圖形所使用的第二二維坐標(biāo)系之間滿足指定關(guān)系。所謂指定關(guān)系,可以是第一二維坐標(biāo)系的x軸與第二二維坐標(biāo)系的x軸重合或平行,第一二維坐標(biāo)系的y軸與第二二維坐標(biāo)系的y軸重合或平行。
預(yù)設(shè)參照物可以是參照線,例如,參照線可以是二維坐標(biāo)系中的某一坐標(biāo)軸。參照關(guān)系可以是標(biāo)準(zhǔn)立體圖形中指定輪廓點(diǎn)與中心點(diǎn)構(gòu)成的線段與參照線的樣本夾角。
鑒于此,在獲取第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)后,可以計(jì)算所述第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)構(gòu)成的目標(biāo)線段的目標(biāo)長(zhǎng)度、以及所述目標(biāo)線段與所述參照線的目標(biāo)夾角;從所述樣本夾角中,篩選出與所述目標(biāo)夾角差距最小的樣本夾角;將所述目標(biāo)長(zhǎng)度、與篩選出的樣本夾角所對(duì)應(yīng)的樣本長(zhǎng)度相比,獲得待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例。
本實(shí)施例中,若目標(biāo)夾角與樣本夾角的差距最小,則可以認(rèn)為篩選出的樣本夾角所對(duì)應(yīng)的投影點(diǎn),是與第二坐標(biāo)點(diǎn)關(guān)系最接近的點(diǎn)。篩選出的樣本夾角所對(duì)應(yīng)的投影點(diǎn)與中心點(diǎn)構(gòu)成的線段、與第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)構(gòu)成的線段具有關(guān)聯(lián)關(guān)系,因此,可以將目標(biāo)長(zhǎng)度與篩選出的樣本夾角所對(duì)應(yīng)的樣本長(zhǎng)度相比,從而獲得待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例。
進(jìn)一步的,為了提高判斷的準(zhǔn)確性,在篩選樣本夾角時(shí),可以從樣本夾角中,篩選出與目標(biāo)夾角差距最小且差距在預(yù)設(shè)夾角內(nèi)的樣本夾角。
由上述實(shí)施例可見,通過夾角的方式建立標(biāo)準(zhǔn)立體圖形與第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)之間的關(guān)系,進(jìn)而確定待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例,可以提高比例的確認(rèn)效率。
由于待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例確定,且將第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)分別作為待繪制立體圖形中底面輪廓的中心點(diǎn)坐標(biāo)和輪廓點(diǎn)坐標(biāo),則可以根據(jù)標(biāo)準(zhǔn)立體圖形的底面輪廓以及第一縮放比例,繪制待繪制立體圖形的底面輪廓。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系還包括:繪制所述標(biāo)準(zhǔn)立體圖形中底面輪廓所需的繪制信息。
鑒于此,在繪制底面輪廓時(shí),可以基于所述第一縮放比例對(duì)所述繪制信息中的長(zhǎng)度進(jìn)行縮放;利用縮放獲得的長(zhǎng)度以及繪制信息中的方向,繪制所述待繪制立體圖形的底面輪廓。
例如,若所述標(biāo)準(zhǔn)三維體為圓柱體或圓錐體,所述繪制信息包括所述標(biāo)準(zhǔn)立體圖形中底面輪廓的最長(zhǎng)半徑的長(zhǎng)度和延伸方向、以及最短半徑的長(zhǎng)度和延伸方向,則基于所述第一縮放比例對(duì)所述繪制信息中的最短半徑的長(zhǎng)度和最長(zhǎng)半徑的長(zhǎng)度進(jìn)行縮放,獲得縮放后的最短半徑長(zhǎng)度和最長(zhǎng)半徑長(zhǎng)度;基于縮放后的最短半徑長(zhǎng)度以及繪制信息中最短半徑的延伸方向、以及縮放后的最長(zhǎng)半徑長(zhǎng)度以及繪制信息中最長(zhǎng)半徑的延伸方向,繪制所述待繪制立體圖形的底面輪廓。
其中,最短半徑可以是標(biāo)準(zhǔn)立體圖形中底面輪廓的中心點(diǎn)到最近輪廓點(diǎn)的距離,最短半徑的延伸方向可以是最短半徑中某一端點(diǎn)到另一端點(diǎn)的方向。最長(zhǎng)半徑可以是標(biāo)準(zhǔn)立體圖形中底面輪廓的中心點(diǎn)到最遠(yuǎn)輪廓點(diǎn)的距離,最長(zhǎng)半徑的延伸方向可以是最長(zhǎng)半徑中某一端點(diǎn)到另一端點(diǎn)的方向。
又如,若所述標(biāo)準(zhǔn)三維體為兩底面平行且兩底面為相同正多邊形的柱體,所述繪制信息包括所述標(biāo)準(zhǔn)立體圖形中底面輪廓的中心點(diǎn)到各頂點(diǎn)的長(zhǎng)度和方向。其中,底面輪廓的頂點(diǎn)可以是底面輪廓中相鄰邊的交點(diǎn)。鑒于此,基于第一縮放比例對(duì)所述繪制信息中長(zhǎng)度進(jìn)行縮放;利用縮放獲得的長(zhǎng)度以及繪制信息中的方向,繪制所述待繪制立體圖形的底面輪廓。
為了繪制出待繪制立體圖形中側(cè)面輪廓,可以預(yù)先獲取標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向。側(cè)面輪廓的延伸方向可以是側(cè)面輪廓中任一端點(diǎn)到另一個(gè)端點(diǎn)的方向。由于在投影條件(預(yù)設(shè)視角)確定的情況下,標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向固定,因此,不管第二點(diǎn)到第三點(diǎn)的方向是否與延伸方向一致,在繪制立體圖形中側(cè)面輪廓時(shí),均按照標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向繪制。
具體的,根據(jù)第二點(diǎn)坐標(biāo)與第三點(diǎn)坐標(biāo)在側(cè)面輪廓的延伸方向上的投影距離,可以確定待繪制立體圖的側(cè)面輪廓長(zhǎng)度,基于已繪制的底面輪廓以及確定的側(cè)面輪廓長(zhǎng)度和延伸方向,繪制待繪制立體圖中其他面的輪廓。
接下來,對(duì)如何確定預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系、以及標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向進(jìn)行介紹。
本實(shí)施例中可以預(yù)存至少一種投影條件(預(yù)設(shè)視角)的樣本數(shù)據(jù)組,樣本數(shù)據(jù)組包括同一種投影條件(預(yù)設(shè)視角)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系、以及標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向。
其中,不同投影條件(預(yù)設(shè)視角)所對(duì)應(yīng)的投影矩陣可能不同。投影矩陣是用于將三維坐標(biāo)轉(zhuǎn)換為二維坐標(biāo)的矩陣。
在一個(gè)可選的實(shí)現(xiàn)方式中,固定存儲(chǔ)一種投影條件(預(yù)設(shè)視角)的樣本數(shù)據(jù)組,每次進(jìn)行圖形繪制時(shí),均采用該樣本數(shù)據(jù)組中的參數(shù)進(jìn)行繪制。
在另一個(gè)可選的實(shí)現(xiàn)方式中,可以存儲(chǔ)多種投影條件(預(yù)設(shè)視角)對(duì)應(yīng)的樣本數(shù)據(jù)組。在繪制立體圖形前,確定樣本數(shù)據(jù)組。例如,基于投影條件(預(yù)設(shè)視角)設(shè)置界面,接收投影條件(預(yù)設(shè)視角)設(shè)置指令,根據(jù)所述投影條件(預(yù)設(shè)視角)設(shè)置指令確定投影條件(預(yù)設(shè)視角),進(jìn)而確定相應(yīng)的樣本數(shù)據(jù)組,然后根據(jù)確定的樣本數(shù)據(jù)組進(jìn)行立體圖形繪制。設(shè)置界面中可以直接以文字的方式描述投影條件(預(yù)設(shè)視角),也可以每種投影條件(預(yù)設(shè)視角)所對(duì)應(yīng)的標(biāo)準(zhǔn)立體圖形進(jìn)行提示,便于用戶查看每種投影條件(預(yù)設(shè)視角)的展示效果,從而快速進(jìn)行投影條件(預(yù)設(shè)視角)設(shè)置。
本發(fā)明實(shí)施例還提供一種樣本數(shù)據(jù)組確定方法。如圖3a所示,圖3a是本發(fā)明根據(jù)一示例性實(shí)施例示出的一種樣本數(shù)據(jù)組確定方法的流程圖,所述方法包括步驟301至304:
在步驟301中,將所述標(biāo)準(zhǔn)三維體的底面輪廓進(jìn)行等分,獲得至少兩個(gè)等分點(diǎn)。
在該步驟中,可以將標(biāo)準(zhǔn)三維體的底面輪廓進(jìn)行n等分,獲得n個(gè)等分點(diǎn)。等分?jǐn)?shù)量決定了等分點(diǎn)的設(shè)置密度,在考慮設(shè)備處理性能的情況下,等分?jǐn)?shù)量可以盡量大。
在步驟302中,基于預(yù)設(shè)視角對(duì)應(yīng)的投影矩陣,確定所述等分點(diǎn)在預(yù)設(shè)視角所對(duì)應(yīng)的投影平面的投影點(diǎn)、以及標(biāo)準(zhǔn)三維體底面中心在預(yù)設(shè)視角所對(duì)應(yīng)的投影平面的投影點(diǎn),將該等分點(diǎn)對(duì)應(yīng)的投影點(diǎn)確定為所述指定輪廓點(diǎn),將中心對(duì)應(yīng)的投影點(diǎn)確定為所述中心點(diǎn)。
實(shí)際應(yīng)用中無需將真正的標(biāo)準(zhǔn)三維體投影到二維平面(投影屏幕),可以利用指定投影條件(預(yù)設(shè)視角)所對(duì)應(yīng)的投影矩陣,將三維繪圖引擎中標(biāo)準(zhǔn)三維體的三維坐標(biāo)轉(zhuǎn)換為二維坐標(biāo),進(jìn)而基于轉(zhuǎn)換獲得的二維坐標(biāo),在二維平面中繪制標(biāo)準(zhǔn)立體圖形。
若標(biāo)準(zhǔn)三維體為圓柱體或圓錐體,所述中心點(diǎn)為圓柱體或圓錐體底面圓心在預(yù)設(shè)視角所對(duì)應(yīng)的投影平面的投影點(diǎn)。若所述標(biāo)準(zhǔn)三維體為兩底面平行且兩底面為相同正多邊形的柱體,所述中心點(diǎn)為柱體底面中心在預(yù)設(shè)視角所對(duì)應(yīng)的投影平面的投影點(diǎn)。柱體底面中心,可以是到底面各個(gè)頂點(diǎn)距離相等的點(diǎn),即底面的中心到底面各個(gè)頂點(diǎn)的距離相等。由于底面是正多邊形,底面中心即正多邊形的幾何中心。
為了區(qū)分等分點(diǎn)對(duì)應(yīng)的投影點(diǎn)以及中心點(diǎn)對(duì)應(yīng)的投影點(diǎn),可以將該等分點(diǎn)對(duì)應(yīng)的投影點(diǎn)確定為所述指定輪廓點(diǎn),將中心對(duì)應(yīng)的投影點(diǎn)確定為所述中心點(diǎn)。
在步驟303中,基于所確定的指定輪廓點(diǎn)和中心點(diǎn),確定標(biāo)準(zhǔn)立體圖形中所述指定輪廓點(diǎn)與中心點(diǎn)構(gòu)成的線段的樣本長(zhǎng)度、以及所述線段與所述參照線的樣本夾角、以及繪制所述標(biāo)準(zhǔn)立體圖形中底面輪廓所需的繪制信息。
其中,若所述標(biāo)準(zhǔn)三維體為圓柱體或圓錐體,所述繪制信息可以包括所述標(biāo)準(zhǔn)立體圖形中底面輪廓的最長(zhǎng)半徑的長(zhǎng)度和延伸方向以及最短半徑的長(zhǎng)度和延伸方向。若所述標(biāo)準(zhǔn)三維體為兩底面平行且兩底面為相同正多邊形的柱體,所述繪制信息可以包括所述標(biāo)準(zhǔn)立體圖形中底面輪廓的中心點(diǎn)到各頂點(diǎn)的長(zhǎng)度和方向。
在步驟304中,基于所確定的指定輪廓點(diǎn)確定標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向。
其中,若所述標(biāo)準(zhǔn)三維體為圓柱體或兩底面平行且兩底面為相同正多邊形的柱體,基于所述標(biāo)準(zhǔn)立體圖形的上底面輪廓中指定輪廓點(diǎn)的坐標(biāo)、以及下底面輪廓中指定輪廓點(diǎn)的坐標(biāo),確定標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向。
若所述標(biāo)準(zhǔn)三維體為圓錐體,基于所述標(biāo)準(zhǔn)立體圖形中底面輪廓中指定輪廓點(diǎn)的坐標(biāo)、以及所述標(biāo)準(zhǔn)立體圖形的頂點(diǎn)坐標(biāo),確定標(biāo)準(zhǔn)立體圖形中輪廓母線的延伸方向。
在該實(shí)施例中,標(biāo)準(zhǔn)三維體是預(yù)先設(shè)置的作為基準(zhǔn)的三維體,在一個(gè)例子中,以三維體為圓柱體為例,圓柱體的半徑可以為r0=1,高度為h0=2。由于預(yù)設(shè)視角已知,則可以獲取預(yù)設(shè)視角下三維空間到二維平面的投影矩陣mp,基于該投影矩陣,可以根據(jù)公式p投影=p三維*mp計(jì)算標(biāo)準(zhǔn)三維體任意輪廓點(diǎn)坐標(biāo)在二維平面的投影點(diǎn)坐標(biāo)。例如,可以基于預(yù)設(shè)視角對(duì)應(yīng)的投影矩陣,確定等分點(diǎn)在預(yù)設(shè)視角所對(duì)應(yīng)的投影平面的投影點(diǎn)(為了區(qū)分,可以稱為指定輪廓點(diǎn)),具體的,確定等分點(diǎn)坐標(biāo)在預(yù)設(shè)視角所對(duì)應(yīng)的投影屏幕的投影點(diǎn)坐標(biāo)(指定輪廓點(diǎn)坐標(biāo))。又如,可以基于預(yù)設(shè)視角對(duì)應(yīng)的投影矩陣,確定三維體底面圓心在預(yù)設(shè)視角所對(duì)應(yīng)的投影平面的投影點(diǎn)(為了區(qū)分,可以稱為中心點(diǎn))。又如,可以基于預(yù)設(shè)視角對(duì)應(yīng)的投影矩陣,確定標(biāo)準(zhǔn)三維體投影到投影平面的投影點(diǎn)坐標(biāo)、且該投影點(diǎn)坐標(biāo)是繪制標(biāo)準(zhǔn)立體圖形所需的坐標(biāo),進(jìn)而根據(jù)確定的坐標(biāo)繪制標(biāo)準(zhǔn)立體圖形。
如圖3b所示,圖3b是本發(fā)明根據(jù)一示例性實(shí)施例示出的一種指定輪廓點(diǎn)確定示意圖。該示意圖以圓柱體為例,將標(biāo)準(zhǔn)圓柱體的底面輪廓等分為n份(為了便于說明,圖3b中只列出了圓柱體底面輪廓的部分指定輪廓點(diǎn)),并將等分點(diǎn)在預(yù)設(shè)視角所對(duì)應(yīng)的投影平面的投影點(diǎn)確定為指定輪廓點(diǎn),為了方便查看,利用圓點(diǎn)突出顯示指定輪廓點(diǎn)。si為圓柱體圖形中上底面輪廓其中一個(gè)等分點(diǎn),si'為圓柱體圖形中下底面輪廓其中一個(gè)等分點(diǎn),o為圓柱體圖形中上底面輪廓的中心點(diǎn)。
本實(shí)施例中,可以根據(jù)指定輪廓點(diǎn)的坐標(biāo)以及中心點(diǎn)的坐標(biāo),確定標(biāo)準(zhǔn)立體圖形中所述指定輪廓點(diǎn)與中心點(diǎn)構(gòu)成的線段的樣本長(zhǎng)度、所述線段與所述參照線的樣本夾角。以指定輪廓點(diǎn)si為例,指定輪廓點(diǎn)si的參數(shù)包括線段osi的長(zhǎng)度
其中,指定輪廓點(diǎn)的坐標(biāo)可以通過公式p投影=p三維*mp計(jì)算獲得,mp表示預(yù)設(shè)視角對(duì)應(yīng)的投影矩陣,p投影表示指定輪廓點(diǎn)的坐標(biāo),p三維表示等分點(diǎn)坐標(biāo)。
樣本夾角又可以稱為投影角度,根據(jù)向量積公式可知:
osi·ox=|osi||ox|·cosθ
從而可以獲得線段osi與x軸的樣本夾角θi:
可見,可以獲得每個(gè)等分點(diǎn)的參數(shù)
進(jìn)一步的,預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系還包括:繪制標(biāo)準(zhǔn)立體圖形中底面輪廓所需的繪制信息。若標(biāo)準(zhǔn)三維體為圓柱體或圓錐體,繪制信息可以包括標(biāo)準(zhǔn)立體圖形中底面輪廓的最長(zhǎng)半徑以及最短半徑的長(zhǎng)度和延伸方向。若標(biāo)準(zhǔn)三維體為兩底面平行且兩底面為相同正多邊形的柱體,繪制信息可以包括標(biāo)準(zhǔn)立體圖形中底面輪廓的中心點(diǎn)到各頂點(diǎn)的長(zhǎng)度和方向。
以圓柱體為例,還可以根據(jù)指定輪廓點(diǎn)的坐標(biāo)與中心點(diǎn)的坐標(biāo)的關(guān)系,確定最短半徑min(ri)以及最長(zhǎng)半徑max(ri)。如圖3c所示。
作為一種優(yōu)選方式,標(biāo)準(zhǔn)立體圖形所使用的第二二維坐標(biāo)系與標(biāo)準(zhǔn)立體圖形滿足:最長(zhǎng)半徑與第二二維坐標(biāo)系中其中一坐標(biāo)軸重合,最短半徑與第二二維坐標(biāo)系中另一坐標(biāo)軸重合,底面輪廓的中心點(diǎn)與第二二維坐標(biāo)系原點(diǎn)重合,則可以大大減少計(jì)算量,節(jié)約計(jì)算時(shí)間。其中,如果最長(zhǎng)半徑與最短半徑剛好分別與坐標(biāo)軸重合,則最短半徑又可以稱為短軸半徑,最長(zhǎng)半徑又可以稱為長(zhǎng)軸半徑。
若標(biāo)準(zhǔn)三維體為圓柱體或兩底面平行且兩底面為相同正多邊形的柱體,可以基于所述標(biāo)準(zhǔn)立體圖形的上底面輪廓中指定輪廓點(diǎn)的坐標(biāo)、以及下底面輪廓中指定輪廓點(diǎn)的坐標(biāo),確定標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向。
由于標(biāo)準(zhǔn)立體圖形的上底面輪廓與下底面輪廓平行,因此,上底面輪廓中某指定輪廓點(diǎn)與下底面輪廓中相應(yīng)輪廓點(diǎn)構(gòu)成的線段、與上底面輪廓中其他指定輪廓點(diǎn)與下底面輪廓中相應(yīng)輪廓點(diǎn)構(gòu)成的線段平行,因此任何線段的延伸方向均與標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向相同。例如根據(jù)si和si'的坐標(biāo)可以確定標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向。如圖3b所示,延伸方向?yàn)閥軸的正方向或負(fù)方向。
若標(biāo)準(zhǔn)三維體為圓錐體,可以基于標(biāo)準(zhǔn)立體圖形中底面輪廓中投影點(diǎn)坐標(biāo)、以及標(biāo)準(zhǔn)立體圖形的頂點(diǎn)坐標(biāo),確定標(biāo)準(zhǔn)立體圖形的輪廓母線的延伸方向。
接著,為了方便理解,本發(fā)明實(shí)施例以一個(gè)具體應(yīng)用實(shí)例介紹繪圖過程中如何繪制待繪制立體圖形。如圖3c所示,圖3c是本發(fā)明根據(jù)一示例性實(shí)施例示出的一種圓柱體圖形對(duì)照示意圖。在該示意圖中,待繪制圓柱體圖形所使用的第一二維坐標(biāo)系與標(biāo)準(zhǔn)圓柱體圖形所使用的第二二維坐標(biāo)系滿足指定關(guān)系。
在鼠標(biāo)拖拽繪制過程中,獲取p1點(diǎn)坐標(biāo)和p2點(diǎn)坐標(biāo),將p1點(diǎn)坐標(biāo)和p2點(diǎn)坐標(biāo)分別作為待繪制立體圖形中底面輪廓的中心點(diǎn)坐標(biāo)和輪廓點(diǎn)坐標(biāo),則p1點(diǎn)坐標(biāo)對(duì)應(yīng)于標(biāo)準(zhǔn)圓柱體圖形中的o點(diǎn),為了找出標(biāo)準(zhǔn)圓柱體圖形中與p2點(diǎn)對(duì)應(yīng)的指定輪廓點(diǎn),可以計(jì)算線段p2p1與ox的夾角∠p2p1x,并從樣本夾角中篩選出與∠p2p1x差距最小的樣本夾角。記α=∠p2p1x,則{δi=θi-α,0≤i≤n},當(dāng)δi取得最小值時(shí)的第i個(gè)投影點(diǎn)即為與p2點(diǎn)對(duì)應(yīng)的投影點(diǎn)si,進(jìn)而確定與線段p2p1對(duì)應(yīng)的樣本長(zhǎng)度
至此,可以根據(jù)以下公式確定第一縮放比例k1:
然后,基于第一縮放比例對(duì)繪制信息中的最短半徑和最長(zhǎng)半徑進(jìn)行縮放,獲得目標(biāo)短半徑k1*min(ri)、以及目標(biāo)長(zhǎng)半徑k1*max(ri);并利用目標(biāo)短半徑k1*min(ri)以及目標(biāo)長(zhǎng)半徑k1*max(ri)繪制待繪制圓柱體圖形的底面輪廓,結(jié)合p3點(diǎn)坐標(biāo)以及標(biāo)準(zhǔn)圓柱體圖形中側(cè)面輪廓的延伸方向,繪制其他面輪廓。
相關(guān)技術(shù)中,往往通過二維繪圖引擎繪制不可轉(zhuǎn)動(dòng)的立體圖形,例如采用兩點(diǎn)法繪制;也可以通過三維繪圖引擎繪制可以轉(zhuǎn)動(dòng)的立體圖形,例如,用戶手動(dòng)輸入立體圖形的三維參數(shù),三維繪圖引擎即可繪制出相應(yīng)的立體圖形。可以理解的是,二維繪圖引擎和三維繪圖引擎繪制出的圖為二維平面圖。二維繪圖引擎繪制出的是固定投影條件(預(yù)設(shè)視角)的立體圖形,因此不可轉(zhuǎn)動(dòng)。而在三維繪圖引擎中,三維繪圖引擎可以根據(jù)旋轉(zhuǎn)操作指令繪制出不同顯示視角下的立體圖形。
然而,二維繪圖引擎和三維繪圖引擎都獨(dú)立使用,無法實(shí)現(xiàn)利用二維繪圖引擎繪制出立體圖形后,利用三維繪圖引擎展示不同顯示視角下的立體圖形。用戶只能分別利用二維繪圖引擎和三維繪圖引擎進(jìn)行繪制,繪圖效率低,且用戶體驗(yàn)差。
為此,本發(fā)明實(shí)施例還提供一種確定三維參數(shù)的方法,所述方法:
s1:根據(jù)第二點(diǎn)坐標(biāo)和第三點(diǎn)坐標(biāo)的距離、以及所述標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的長(zhǎng)度和延伸方向,確定待繪制立體圖形的側(cè)面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的側(cè)面輪廓的第二縮放比例。
其中,可以確定第二點(diǎn)坐標(biāo)與第三點(diǎn)坐標(biāo)在延伸方向上的投影距離,將投影距離與標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的長(zhǎng)度相比,可以獲得待繪制立體圖形的側(cè)面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的側(cè)面輪廓的第二縮放比例。
s2:獲取利用三維繪圖引擎繪制所述標(biāo)準(zhǔn)立體圖形時(shí)所需的三維參數(shù)。
其中,若標(biāo)準(zhǔn)三維體是圓柱體或圓錐體時(shí),利用三維繪圖引擎繪制所述標(biāo)準(zhǔn)立體圖形時(shí)所需的三維參數(shù)包括圓柱體或圓錐體底面圓半徑以及圓柱體或圓錐體的高。若標(biāo)準(zhǔn)三維體為兩底面平行且兩底面為相同正多邊形的柱體,則利用三維繪圖引擎繪制所述標(biāo)準(zhǔn)立體圖形時(shí)所需的三維參數(shù)包括圓柱體可以是棱線長(zhǎng)度。例如,柱體為底面為正方形的柱體時(shí),三維參數(shù)可以是底面邊長(zhǎng)以及高。
s3:基于所述第一縮放比例和所述第二縮放比例,對(duì)所述三維參數(shù)進(jìn)行縮放。
其中,可以利用第一縮放比例對(duì)三維體的底面三維參數(shù)進(jìn)行縮放,利用第二縮放比例對(duì)三維體的高進(jìn)行縮放。
以圓柱體為例,假設(shè)標(biāo)準(zhǔn)圓柱體的底面半徑為r0、高為h0,第一縮放比例為
s4:將縮放獲得的三維參數(shù)輸入三維繪圖引擎。
鑒于此,三維繪圖引擎可以根據(jù)縮放獲得的三維參數(shù)繪制所述待繪制立體圖形;接收對(duì)所述待繪制立體圖形的旋轉(zhuǎn)操作指令;根據(jù)所述旋轉(zhuǎn)操作指令變換所述待繪制立體圖形所對(duì)應(yīng)的三維體的顯示視角;繪制所述三維體在該顯示視角下的立體圖形。
可見,本發(fā)明實(shí)施例根據(jù)顯示視角的變化,實(shí)時(shí)繪制變化后顯示視角下的立體圖形,對(duì)立體圖形的顯示更直觀,用戶體驗(yàn)較好。
以上實(shí)施例中的各種技術(shù)特征可以任意進(jìn)行組合,只要特征之間的組合不存在沖突或矛盾,但是限于篇幅,未進(jìn)行一一描述,因此上述實(shí)施方式中的各種技術(shù)特征的任意進(jìn)行組合也屬于本說明書公開的范圍。
如圖4所示,圖4是本發(fā)明根據(jù)一示例性實(shí)施例示出的另一種立體圖形繪制方法的流程圖,該方法包括以下步驟:
在步驟401中,獲取第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)。
在步驟402中,計(jì)算所述第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)構(gòu)成的目標(biāo)線段的目標(biāo)長(zhǎng)度、以及所述目標(biāo)線段與預(yù)設(shè)的參照線的目標(biāo)夾角。
在步驟403中,從預(yù)設(shè)對(duì)應(yīng)關(guān)系中,篩選出與所述目標(biāo)夾角差距最小的樣本夾角。
其中,預(yù)先配置有樣本長(zhǎng)度和樣本夾角的對(duì)應(yīng)關(guān)系,所述樣本長(zhǎng)度是標(biāo)準(zhǔn)立體圖形中底面輪廓上指定輪廓點(diǎn)與中心點(diǎn)構(gòu)成的線段的長(zhǎng)度,所述樣本夾角是所述線段與所述參照線的夾角。
在步驟404中,將所述目標(biāo)長(zhǎng)度與篩選出的樣本夾角所對(duì)應(yīng)的樣本長(zhǎng)度相比,獲得待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例。
在步驟405中,根據(jù)第一點(diǎn)坐標(biāo)、第二點(diǎn)坐標(biāo)以及所述第一縮放比例繪制所述待繪制立體圖形的底面輪廓。
在步驟406中,獲取第三點(diǎn)坐標(biāo)。
在一個(gè)例子中,執(zhí)行完步驟406后,可以執(zhí)行步驟407,也可以執(zhí)行步驟408。步驟407和步驟408之間沒有先后執(zhí)行順序,可以先執(zhí)行步驟407,后執(zhí)行步驟408;也可以先執(zhí)行步驟408,后執(zhí)行步驟407,在此不做限制。在一個(gè)例子中,步驟406可以是執(zhí)行步驟407和執(zhí)行步驟408的觸發(fā)條件。在另一個(gè)例子中,步驟407可以是執(zhí)行步驟408的觸發(fā)條件等。
在步驟407中,根據(jù)第二點(diǎn)坐標(biāo)和第三點(diǎn)坐標(biāo)的距離、以及所述標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向,繪制所示待繪制立體圖中其他面的輪廓。
在步驟408中,根據(jù)第二點(diǎn)坐標(biāo)和第三點(diǎn)坐標(biāo)的距離、以及所述標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的長(zhǎng)度和延伸方向,確定待繪制立體圖形的側(cè)面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的側(cè)面輪廓的第二縮放比例。
在步驟409中,獲取利用三維繪圖引擎繪制所述標(biāo)準(zhǔn)立體圖形時(shí)所需的三維參數(shù)。
其中,步驟409與步驟407和408的執(zhí)行順序可以不做限定。在一個(gè)例子中,可以將步驟407作為步驟409的觸發(fā)條件,即在繪制待繪制立體圖中其他面的輪廓后,執(zhí)行步驟409;在另一個(gè)例子中,可以將步驟408作為步驟409的觸發(fā)條件,即在確定第二縮放比例后,執(zhí)行步驟409等等,還可以將其他條件作為執(zhí)行步驟409的觸發(fā)條件,在此不一一列舉。
在步驟410中,基于所述第一縮放比例和所述第二縮放比例,對(duì)所述三維參數(shù)進(jìn)行縮放。
其中,待步驟404獲得第一縮放比例,步驟408獲得第二縮放比例,步驟409獲得三維參數(shù)時(shí),可以執(zhí)行步驟410。
在步驟411中,將縮放獲得的三維參數(shù)輸入三維繪圖引擎。
其中,步驟401至步驟411與前述步驟201至204、以及301至304相關(guān)技術(shù)相同,在此不再一一贅述。
由上述實(shí)施例可見,本實(shí)施例通過兩點(diǎn)繪制立體圖形的一個(gè)底面輪廓,并通過第三點(diǎn)繪制立體圖形的其他面輪廓,從而實(shí)現(xiàn)立體圖形的繪制,由于用戶可以通過兩點(diǎn)控制立體圖形中底面輪廓大小,通過第三個(gè)點(diǎn)控制立體圖形中其他面輪廓,因此可以積極響應(yīng)繪圖指令,繪制出用戶期望繪制的立體圖形,進(jìn)而提高繪制立體圖形的準(zhǔn)確性。并且,根據(jù)繪制的立方體圖形可以獲得相應(yīng)三維體的三維尺寸,并將三維尺寸傳輸至三維繪圖引擎,通過三維繪圖引擎繪制該三維體在各種視角下立體圖形,實(shí)現(xiàn)二維繪圖工具和三維繪圖引擎的結(jié)合。
與前述立體圖形繪制方法的實(shí)施例相對(duì)應(yīng),本發(fā)明還提供了立體圖形繪制裝置、裝置所應(yīng)用的電子設(shè)備以及計(jì)算存儲(chǔ)介質(zhì)的實(shí)施例。
本發(fā)明立體圖形繪制裝置的實(shí)施例可以應(yīng)用在計(jì)算機(jī)設(shè)備。裝置實(shí)施例可以通過軟件實(shí)現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個(gè)邏輯意義上的裝置,是通過其所在立體圖形繪制的處理器將非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從硬件層面而言,如圖5所示,為本發(fā)明立體圖形繪制裝置所在計(jì)算機(jī)設(shè)備的一種硬件結(jié)構(gòu)圖,除了圖5所示的處理器510、內(nèi)存530、網(wǎng)絡(luò)接口520、以及非易失性存儲(chǔ)器540之外,實(shí)施例中裝置531所在的計(jì)算機(jī)設(shè)備通常根據(jù)該服務(wù)器的實(shí)際功能,還可以包括其他硬件,對(duì)此不再贅述。
如圖6所示,圖6是本發(fā)明根據(jù)一示例性實(shí)施例示出的一種立體圖形繪制裝置的框圖,所述裝置包括:坐標(biāo)獲取模塊610、比例確定模塊620以及圖形繪制模塊630。
其中,坐標(biāo)獲取模塊610,用于獲取第一點(diǎn)坐標(biāo)、第二點(diǎn)坐標(biāo)、第三點(diǎn)坐標(biāo)。
比例確定模塊620,用于將所述第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)分別作為待繪制立體圖形中底面輪廓的中心點(diǎn)坐標(biāo)和輪廓點(diǎn)坐標(biāo),并結(jié)合預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系,確定待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例。
圖形繪制模塊630,用于基于所述第一縮放比例繪制所述待繪制立體圖形的底面輪廓;根據(jù)第二點(diǎn)坐標(biāo)和第三點(diǎn)坐標(biāo)的距離、以及所述標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向,繪制所示待繪制立體圖中其他面的輪廓。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述標(biāo)準(zhǔn)立體圖形是在二維平面上以預(yù)設(shè)視角展示標(biāo)準(zhǔn)三維體的圖形,所述標(biāo)準(zhǔn)三維體包括圓柱體、圓錐體、或兩底面平行且兩底面為相同正多邊形的柱體,若所述標(biāo)準(zhǔn)三維體為圓柱體或圓錐體,所述側(cè)面輪廓為輪廓母線;若所述標(biāo)準(zhǔn)三維體為兩底面平行且兩底面為相同正多邊形的柱體,所述側(cè)面輪廓為側(cè)面棱線。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系包括:樣本長(zhǎng)度和樣本夾角的對(duì)應(yīng)關(guān)系,所述樣本長(zhǎng)度是標(biāo)準(zhǔn)立體圖形中指定輪廓點(diǎn)與中心點(diǎn)構(gòu)成的線段的長(zhǎng)度,所述樣本夾角是所述線段與預(yù)設(shè)的參照線的夾角。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述裝置還包括關(guān)系確定模塊(圖6未示出),所述關(guān)系確定模塊用于:
將所述標(biāo)準(zhǔn)三維體的底面輪廓進(jìn)行等分,獲得至少兩個(gè)等分點(diǎn)。
基于預(yù)設(shè)視角對(duì)應(yīng)的投影矩陣,確定所述等分點(diǎn)在預(yù)設(shè)視角所對(duì)應(yīng)的投影平面的投影點(diǎn)、以及標(biāo)準(zhǔn)三維體底面中心在預(yù)設(shè)視角所對(duì)應(yīng)的投影平面的投影點(diǎn),將該等分點(diǎn)對(duì)應(yīng)的投影點(diǎn)確定為所述指定輪廓點(diǎn),將中心對(duì)應(yīng)的投影點(diǎn)確定為所述中心點(diǎn)。
基于所確定的指定輪廓點(diǎn)和中心點(diǎn),確定標(biāo)準(zhǔn)立體圖形中所述指定輪廓點(diǎn)與中心點(diǎn)構(gòu)成的線段的樣本長(zhǎng)度、以及所述線段與所述參照線的樣本夾角。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述比例確定模塊620包括:
信息計(jì)算子模塊,用于計(jì)算所述第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)構(gòu)成的目標(biāo)線段的目標(biāo)長(zhǎng)度、以及所述目標(biāo)線段與所述參照線的目標(biāo)夾角。
夾角篩選子模塊,用于從所述樣本夾角中,篩選出與所述目標(biāo)夾角差距最小的樣本夾角。
比例確定子模塊,用于將所述目標(biāo)長(zhǎng)度與篩選出的樣本夾角所對(duì)應(yīng)的樣本長(zhǎng)度相比,獲得待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系還包括:繪制所述標(biāo)準(zhǔn)立體圖形中底面輪廓所需的繪制信息;若所述標(biāo)準(zhǔn)三維體為圓柱體或圓錐體,所述繪制信息包括所述標(biāo)準(zhǔn)立體圖形中底面輪廓的最長(zhǎng)半徑以及最短半徑的長(zhǎng)度和延伸方向;若所述標(biāo)準(zhǔn)三維體為兩底面平行且兩底面為相同正多邊形的柱體,所述繪制信息包括所述標(biāo)準(zhǔn)立體圖形中底面輪廓的中心點(diǎn)到各頂點(diǎn)的長(zhǎng)度和方向。
所述圖形繪制模塊具體用于:基于所述第一縮放比例對(duì)所述繪制信息中的長(zhǎng)度進(jìn)行縮放。利用縮放獲得的長(zhǎng)度以及繪制信息中的方向,繪制所述待繪制立體圖形的底面輪廓。
在一個(gè)可選的實(shí)現(xiàn)方式中,若所述標(biāo)準(zhǔn)三維體為圓柱體或兩底面平行且兩底面為相同正多邊形的柱體,所述裝置還包括第一方向確定模塊(圖6未示出),用于:基于所述標(biāo)準(zhǔn)立體圖形的上底面輪廓中指定輪廓點(diǎn)的坐標(biāo)、以及下底面輪廓中指定輪廓點(diǎn)的坐標(biāo),確定標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向。
在一個(gè)可選的實(shí)現(xiàn)方式中,若所述標(biāo)準(zhǔn)三維體為圓錐體,所述裝置還包括第二方向確定模塊(圖6未示出),用于:基于所述標(biāo)準(zhǔn)立體圖形中底面輪廓中指定輪廓點(diǎn)的坐標(biāo)、以及所述標(biāo)準(zhǔn)立體圖形的頂點(diǎn)坐標(biāo),確定標(biāo)準(zhǔn)立體圖形中輪廓母線的延伸方向。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述裝置還包括參數(shù)獲取模塊、參數(shù)縮放模塊和參數(shù)傳輸模塊(圖6未示出)。
其中,所述比例確定模塊,還用于根據(jù)第二點(diǎn)坐標(biāo)和第三點(diǎn)坐標(biāo)的距離、以及所述標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的長(zhǎng)度和延伸方向,確定待繪制立體圖形的側(cè)面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的側(cè)面輪廓的第二縮放比例。
參數(shù)獲取模塊,用于獲取利用三維繪圖引擎繪制所述標(biāo)準(zhǔn)立體圖形時(shí)所需的三維參數(shù)。
參數(shù)縮放模塊,用于基于所述第一縮放比例和所述第二縮放比例,對(duì)所述三維參數(shù)進(jìn)行縮放。
參數(shù)傳輸模塊,用于將縮放獲得的三維參數(shù)輸入三維繪圖引擎。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述裝置還包括:
繪制模塊,用于基于所述三維繪圖引擎,利用縮放獲得的三維參數(shù)繪制所述待繪制立體圖形。
指令接收模塊,用于接收對(duì)所述待繪制立體圖形的旋轉(zhuǎn)操作指令。
視角確定模塊,用于根據(jù)所述旋轉(zhuǎn)操作指令變換所述待繪制立體圖形所對(duì)應(yīng)的三維體的顯示視角。
所述繪制模塊,還用于繪制所述三維體在該顯示視角下的立體圖形。
相應(yīng)的,本發(fā)明還提供一種電子設(shè)備,所述裝置包括有處理器;用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;其中,所述處理器被配置為:
獲取第一點(diǎn)坐標(biāo)、第二點(diǎn)坐標(biāo)、第三點(diǎn)坐標(biāo)。
將所述第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)分別作為待繪制立體圖形中底面輪廓的中心點(diǎn)坐標(biāo)和輪廓點(diǎn)坐標(biāo),并結(jié)合預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系,確定待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例。
基于所述第一縮放比例繪制所述待繪制立體圖形的底面輪廓。
根據(jù)第二點(diǎn)坐標(biāo)和第三點(diǎn)坐標(biāo)的距離、以及所述標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向,繪制所示待繪制立體圖中其他面的輪廓。
進(jìn)一步的,電子設(shè)備可以為智能平板,例如希沃交互智能平板。
相應(yīng)的,本發(fā)明實(shí)施例還提供一種計(jì)算機(jī)存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)中存儲(chǔ)有程序指令,所述程序指令包括:
獲取第一點(diǎn)坐標(biāo)、第二點(diǎn)坐標(biāo)、第三點(diǎn)坐標(biāo)。
將所述第一點(diǎn)坐標(biāo)和第二點(diǎn)坐標(biāo)分別作為待繪制立體圖形中底面輪廓的中心點(diǎn)坐標(biāo)和輪廓點(diǎn)坐標(biāo),并結(jié)合預(yù)設(shè)的標(biāo)準(zhǔn)立體圖形的底面輪廓上各指定輪廓點(diǎn)與中心點(diǎn)的關(guān)系,確定待繪制立體圖形的底面輪廓相對(duì)于標(biāo)準(zhǔn)立體圖形的底面輪廓的第一縮放比例。
基于所述第一縮放比例繪制所述待繪制立體圖形的底面輪廓。
根據(jù)第二點(diǎn)坐標(biāo)和第三點(diǎn)坐標(biāo)的距離、以及所述標(biāo)準(zhǔn)立體圖形中側(cè)面輪廓的延伸方向,繪制所示待繪制立體圖中其他面的輪廓。
本發(fā)明實(shí)施例可采用在一個(gè)或多個(gè)其中包含有程序代碼的存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。計(jì)算機(jī)可用存儲(chǔ)介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體,可以由任何方法或技術(shù)來實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括但不限于:相變內(nèi)存(pram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、其他類型的隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、電可擦除可編程只讀存儲(chǔ)器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問的信息。
對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理模塊,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)模塊上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本發(fā)明方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
本領(lǐng)域技術(shù)人員在考慮說明書及實(shí)踐這里申請(qǐng)的發(fā)明后,將容易想到本發(fā)明的其它實(shí)施方案。本發(fā)明旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本發(fā)明未申請(qǐng)的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說明書和實(shí)施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權(quán)利要求指出。
應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。