国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      繪制平行曲線的方法和設(shè)備與流程

      文檔序號:12836600閱讀:398來源:國知局
      繪制平行曲線的方法和設(shè)備與流程
      本發(fā)明涉及計算機(jī)領(lǐng)域,特別涉及一種繪制平行曲線的方法和設(shè)備。

      背景技術(shù):
      隨著計算機(jī)的廣泛應(yīng)用,越來越多的設(shè)計師利用計算機(jī)繪制圖形。繪制圖像的過程中往往涉及到曲線的繪制,尤其是平行曲線的繪制,平行曲線是指第一曲線任一切線的切點,與之對應(yīng)第二曲線的切點,兩個切點的切線平行,兩個切點之間的距離處處相等,且等于預(yù)設(shè)寬度,如何將繪制出的平行曲線達(dá)到曲線平行的效果,一直是人們關(guān)注的焦點和致力于解決的問題。現(xiàn)有技術(shù)在繪制平行曲線時,首先獲知曲線的起始點、控制點和終點,根據(jù)該起始點、控制點和終點繪制出輔助曲線,以輔助曲線為中心線在輔助曲線的兩側(cè)繪制相同寬度的兩條曲線,這兩條曲線即為繪制出的平行曲線。在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:兩條曲線的長度越長,兩條曲線會出現(xiàn)明顯的不平行效果,且曲線的傾斜度不同,兩條曲線的寬度會有差異,出現(xiàn)明顯的不平行效果。

      技術(shù)實現(xiàn)要素:
      為了繪制出完美的平行曲線,本發(fā)明實施例提供了一種繪制平行曲線的方法和設(shè)備。所述技術(shù)方案如下:一方面,本發(fā)明實施例提供了一種繪制平行曲線的方法,所述方法包括:根據(jù)貝塞爾關(guān)系式、第一起始點、第一控制點和第一終點繪制出第一貝塞爾曲線;判斷所述第一貝塞爾曲線是否滿足切分條件;當(dāng)所述第一貝塞爾曲線滿足切分條件時,對所述第一貝塞爾曲線進(jìn)行切分操作得到切分后的第二貝塞爾曲線和第三貝塞爾曲線,并分別判斷所述第二貝塞爾曲線和/或所述第三貝塞爾曲線是否滿足切分條件;當(dāng)所述第二貝塞爾曲線和/或所述第三貝塞爾曲線滿足切分條件時,則執(zhí)行切分操作,直到切分后的N段曲線不滿足切分條件為止,所述N為大于2的整數(shù);以切分后的每段曲線為已知曲線,根據(jù)所述已知曲線和預(yù)設(shè)的寬度值,繪制出平行曲線。其中,所述切分條件具體為:所述第一控制點到所述第一起始點的第一連線,與所述第一控制點到所述第一終點的第二連線之間的夾角小于預(yù)設(shè)角度。其中,所述對所述第一貝塞爾曲線進(jìn)行切分操作得到切分后的第二貝塞爾曲線和第三貝塞爾曲線,具體包括:對所述貝塞爾曲線的變量取預(yù)設(shè)值,得到切分點;在所述切分點對所述第一貝塞爾曲線進(jìn)行切分操作得到第二貝塞爾曲線和第三貝塞爾曲線。其中,所述貝塞爾關(guān)系式具體為:P(t)=(1-t^2)Ps+2*t(1-t)Pc+(t^2)Pe,其中,P(t)表示貝塞爾曲線,t表示貝塞爾曲線的坐標(biāo)變量,t^2表示t的平方,Ps表示第一起始點,Pc表示第一控制點,Pe表示第一終點,所述t的預(yù)設(shè)值具體為0.5。其中,所述預(yù)設(shè)角度具體為90度。其中,所述判斷所述第二貝塞爾曲線和/或所述第三貝塞爾曲線是否滿足切分條件,具體包括:根據(jù)所述第二貝塞爾曲線和所述第一貝塞爾曲線得到所述第二貝塞爾曲線的第二控制點,以所述切分點為所述第二貝塞爾曲線的第二終點,以所述第一起始點為所述第二貝塞爾曲線的第二起始點;判斷所述第二控制點到所述第一起始點的第三連線,與所述第二控制點到所述第二終點的第四連線之間的夾角是否小于預(yù)設(shè)角度;當(dāng)所述第三連線與所述第四連線之間的夾角小于預(yù)設(shè)角度時,則判斷出所述第二貝塞爾曲線滿足切分條件;和/或;根據(jù)所述第一貝塞爾曲線和所述第三貝塞爾曲線得到所述第三貝塞爾曲線的第三控制點,以所述切分點為所述第三貝塞爾曲線的第三終點,以所述第一終點為所述第三貝塞爾曲線的第三起始點;判斷所述第三控制點到所述第一終點的第五連線,與所述第三控制點到所述第三終點的第六連線之間的夾角是否小于預(yù)設(shè)角度;當(dāng)所述第五連線與所述第六連線之間的夾角小于預(yù)設(shè)角度時,則判斷出所述第三貝塞爾曲線滿足切分條件。其中,所述根據(jù)所述第二貝塞爾曲線和所述第一貝塞爾曲線得到所述第二貝塞爾曲線的第二控制點,具體包括:以所述第一起始點為切點,對所述第一貝塞爾曲線做第一切線;以所述第二終點為切點,對所述第二貝塞爾曲線做第二切線;所述第一切線和所述第二切線的交點作為所述第二貝塞爾曲線的第二控制點。其中,所述根據(jù)所述已知曲線和預(yù)設(shè)的寬度值,繪制出平行曲線,具體包括:在所述已知曲線的兩側(cè),與所述已知曲線距離所述寬度值的一半處分別繪制一條曲線得到第一曲線和第二曲線;所述第一曲線和所述第二曲線為構(gòu)成平行曲線。另一方面,本發(fā)明實施例提供了一種繪制平行曲線的設(shè)備,所述設(shè)備包括:第一繪制模塊,用于根據(jù)貝塞爾關(guān)系式、第一起始點、第一控制點和第一終點繪制出第一貝塞爾曲線;判斷模塊,用于判斷所述第一繪制模塊繪制出的所述第一貝塞爾曲線是否滿足切分條件;第一執(zhí)行模塊,用于當(dāng)所述判斷模塊判斷出的所述第一貝塞爾曲線滿足切分條件時,對所述第一貝塞爾曲線進(jìn)行切分操作得到切分后的第二貝塞爾曲線和第三貝塞爾曲線,并分別判斷所述第二貝塞爾曲線和/或所述第三貝塞爾曲線是否滿足切分條件;第二執(zhí)行模塊,用于當(dāng)所述第一執(zhí)行模塊得到的所述第二貝塞爾曲線和/或所述第三貝塞爾曲線滿足切分條件時,則執(zhí)行切分操作,直到切分后的N段曲線不滿足切分條件為止,所述N為大于2的整數(shù);第二繪制模塊,用于對所述第二執(zhí)行模塊得到的每段曲線為已知曲線,根據(jù)所述已知曲線和預(yù)設(shè)的寬度值,繪制出平行曲線。其中,所述判斷模塊,具體用于判斷所述第一繪制模塊繪制出的所述第一貝塞爾曲線的第一控制點到所述第一起始點的第一連線,與所述第一控制點到所述第一終點的第二連線之間的夾角是否小于預(yù)設(shè)角度。其中,所述第一執(zhí)行模塊具體包括切分單元和判斷單元;所述切分單元,用于當(dāng)所述判斷模塊判斷出的所述第一貝塞爾曲線滿足切分條件時,對所述貝塞爾曲線的變量取預(yù)設(shè)值,得到切分點;并在所述切分點對所述第一貝塞爾曲線進(jìn)行切分操作得到第二貝塞爾曲線和第三貝塞爾曲線;所述判斷單元,用于分別判斷所述第二貝塞爾曲線和所述第三貝塞爾曲線是否滿足切分條件。其中,所述第一執(zhí)行模塊具體包括切分單元和判斷單元;所述切分單元,用于當(dāng)所述判斷模塊判斷出的所述第一貝塞爾曲線滿足切分條件時,對所述貝塞爾曲線的變量取預(yù)設(shè)值,得到切分點;并在所述切分點對所述第一貝塞爾曲線進(jìn)行切分操作得到第二貝塞爾曲線和第三貝塞爾曲線;所述判斷單元,用于根據(jù)所述第二貝塞爾曲線和所述第一貝塞爾曲線得到所述第二貝塞爾曲線的第二控制點,以所述切分點為所述第二貝塞爾曲線的第二終點,以所述第一起始點為所述第二貝塞爾曲線的第二起始點;判斷所述第二控制點到所述第一起始點的第三連線,與所述第二控制點到所述第二終點的第四連線之間的夾角是否小于預(yù)設(shè)角度;當(dāng)所述第三連線與所述第四連線之間的夾角小于預(yù)設(shè)角度時,則判斷出所述第二貝塞爾曲線滿足切分條件;和/或,所述判斷單元,用于根據(jù)所述第一貝塞爾曲線和所述第三貝塞爾曲線得到所述第三貝塞爾曲線的第三控制點,以所述切分點為所述第三貝塞爾曲線的第三終點,以所述第一終點為所述第三貝塞爾曲線的第三起始點;判斷所述第三控制點到所述第一終點的第五連線,與所述第三控制點到所述第三終點的第六連線之間的夾角是否小于預(yù)設(shè)角度;當(dāng)所述第五連線與所述第六連線之間的夾角小于預(yù)設(shè)角度時,則判斷出所述第三貝塞爾曲線滿足切分條件。其中,所述判斷單元具體包括確定控制點子單元、確定子單元和判斷子單元;所述確定控制點子單元,用于以所述第一起始點為切點,對所述第一貝塞爾曲線做第一切線;并以所述第二終點為切點,對所述第二貝塞爾曲線做第二切線;所述第一切線和所述第二切線的交點作為所述第二貝塞爾曲線的第二控制點;所述確定子單元,用于以所述切分點為所述第二貝塞爾曲線的第二終點;所述判斷子單元,用于判斷所述第二控制點到所述第一起始點的第三連線,與所述第二控制點到所述第二終點的第四連線之間的夾角是否小于預(yù)設(shè)角度;當(dāng)所述第三連線與所述第四連線之間的夾角小于預(yù)設(shè)角度時,則判斷出所述第二貝塞爾曲線滿足切分條件;和/或,所述確定控制點子單元,用于以所述第一終點為切點,對所述第一貝塞爾曲線做第三切線;并以所述切分點為切點,對所述第三貝塞爾曲線做第四切線;所述第三切線和所述第四切線的交點作為所述第三貝塞爾曲線的第三控制點;所述確定子單元,用于以所述切分點為所述第三貝塞爾曲線的第三終點;所述判斷子單元,用于判斷所述第三控制點到所述第一終點的第五連線,與所述第三控制點到所述第三終點的第六連線之間的夾角是否小于預(yù)設(shè)角度;當(dāng)所述第五連線與所述第六連線之間的夾角小于預(yù)設(shè)角度時,則判斷出所述第三貝塞爾曲線滿足切分條件。其中,所述第二繪制模塊,用于在所述已知曲線的兩側(cè),與所述已知曲線距離所述寬度值的一半處分別繪制一條曲線得到第一曲線和第二曲線;所述第一曲線和所述第二曲線構(gòu)成平行曲線。本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是:通過在繪制平行曲線時,將曲線分為多段,并對分段后的曲線采用端點切線平行的方法繪制出曲線,從而繪制出完美的平行曲線,且對于長度很長的曲線,也能繪制出理想的平行曲線。附圖說明為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明實施例1提供的繪制平行曲線的方法流程圖;圖2是本發(fā)明實施例2提供的繪制平行曲線的方法流程圖;圖3是本發(fā)明實施例2提供的第一貝塞爾曲線的示意圖;圖4a是本發(fā)明實施例2提供的第二貝塞爾曲線的示意圖;圖4b是本發(fā)明實施例2提供的第三貝塞爾曲線的示意圖;圖5是本發(fā)明實施例3提供的繪制平行曲線的設(shè)備的結(jié)構(gòu)示意圖;圖6是本發(fā)明實施例3提供的繪制平行曲線的設(shè)備的另一結(jié)構(gòu)示意圖。具體實施方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進(jìn)一步地詳細(xì)描述。實施例1參見圖1,本發(fā)明實施例提供了一種繪制平行曲線的方法,所述方法包括:101:根據(jù)貝塞爾關(guān)系式、第一起始點、第一控制點和第一終點繪制出第一貝塞爾曲線;102:判斷第一貝塞爾曲線是否滿足切分條件;103:當(dāng)?shù)谝回惾麪柷€滿足切分條件時,對第一貝塞爾曲線進(jìn)行切分操作得到切分后的第二貝塞爾曲線和第三貝塞爾曲線,并分別判斷第二貝塞爾曲線和/或第三貝塞爾曲線是否滿足切分條件;104:當(dāng)?shù)诙惾麪柷€和/或第三貝塞爾曲線滿足切分條件時,則執(zhí)行切分操作,直到切分后的N段曲線不滿足切分條件為止,N為大于2的整數(shù);105:以切分后的每段曲線為已知曲線,根據(jù)已知曲線和預(yù)設(shè)的寬度值,繪制出平行曲線。其中,本實施例中,切分條件具體為:第一控制點到第一起始點的第一連線,與第一控制點到第一終點的第二連線之間的夾角小于預(yù)設(shè)角度。其中,對第一貝塞爾曲線進(jìn)行切分操作得到切分后的第二貝塞爾曲線和第三貝塞爾曲線,具體包括:對貝塞爾曲線的變量取預(yù)設(shè)值,得到切分點;在切分點對第一貝塞爾曲線進(jìn)行切分操作得到第二貝塞爾曲線和第三貝塞爾曲線。其中,貝塞爾關(guān)系式具體為:P(t)=(1-t^2)Ps+2*t(1-t)Pc+(t^2)Pe,其中,P(t)表示貝塞爾曲線,t表示貝塞爾曲線的坐標(biāo)變量,t^2表示t的平方,Ps表示第一起始點,Pc表示第一控制點,Pe表示第一終點,t的預(yù)設(shè)值具體為0.5。其中,預(yù)設(shè)角度具體為90度。其中,判斷第二貝塞爾曲線和/或第三貝塞爾曲線是否滿足切分條件,具體包括:根據(jù)第二貝塞爾曲線和第一貝塞爾曲線得到第二貝塞爾曲線的第二控制點,以切分點為第二貝塞爾曲線的第二終點,以第一起始點為第二貝塞爾曲線的第二起始點;判斷第二控制點到第一起始點的第三連線,與第二控制點到第二終點的第四連線之間的夾角是否小于預(yù)設(shè)角度;當(dāng)?shù)谌B線與第四連線之間的夾角小于預(yù)設(shè)角度時,則判斷出第二貝塞爾曲線滿足切分條件;和/或;根據(jù)第一貝塞爾曲線和第三貝塞爾曲線得到第三貝塞爾曲線的第三控制點,以切分點為第三貝塞爾曲線的第三終點,以第一終點為第三貝塞爾曲線的第三起始點;判斷第三控制點到第一終點的第五連線,與第三控制點到第三終點的第六連線之間的夾角是否小于預(yù)設(shè)角度;當(dāng)?shù)谖暹B線與第六連線之間的夾角小于預(yù)設(shè)角度時,則判斷出第三貝塞爾曲線滿足切分條件。其中,根據(jù)第二貝塞爾曲線和第一貝塞爾曲線得到第二貝塞爾曲線的第二控制點,具體包括:以第一起始點為切點,對第一貝塞爾曲線做第一切線;以第二終點為切點,對第二貝塞爾曲線做第二切線;第一切線和第二切線的交點作為第二貝塞爾曲線的第二控制點。其中,根據(jù)已知曲線和預(yù)設(shè)的寬度值,繪制出平行曲線,具體包括:在已知曲線的兩側(cè),與已知曲線距離寬度值的一半處分別繪制一條曲線得到第一曲線和第二曲線;第一曲線和第二曲線構(gòu)成平行曲線。本發(fā)明實施例提供的方法,通過在繪制平行曲線時,將曲線分為多段,并對分段后的曲線采用端點切線平行的方法繪制出曲線,從而繪制出完美的平行曲線,且對于長度很長的曲線,也能繪制出理想的平行曲線。實施例2參見圖2,本發(fā)明實施例提供了一種繪制平行曲線的方法,所述方法包括:201:根據(jù)貝塞爾關(guān)系式、第一起始點、第一控制點和第一終點繪制出第一貝塞爾曲線。具體地,第一起始點、第一控制點和第一終點為已知值,貝塞爾關(guān)系式為:P(t)=(1-t^2)Ps+2*t(1-t)Pc+(t^2)Pe,其中,P(t)表示貝塞爾曲線,t表示貝塞爾曲線的坐標(biāo)變量,t^2表示t的平方,Ps表示第一起始點,Pc表示第一控制點,Pe表示第一終點,t的取值范圍為[0,1]。第一起始點、第一控制點和第一終點的坐標(biāo)均為已知,因而根據(jù)上述關(guān)系式即可繪制出一條貝塞爾曲線,此處將該貝塞爾曲線稱為第一貝塞爾曲線,第一并不是對貝塞爾曲線的限定,只是為了與后面提到的其他貝塞爾曲線進(jìn)行區(qū)分。如圖3所示的第一貝塞爾曲線,可以理解,曲線最左邊的點A為第一貝塞爾曲線的第一起始點,曲線最右邊的點B為第一終點,曲線最下面的點C為第一控制點。202:判斷第一貝塞爾曲線是否滿足切分條件,若滿足,則執(zhí)行步驟203,否則步驟結(jié)束。具體地,本發(fā)明實施例根據(jù)第一貝塞爾曲線的特點將該曲線切分為兩段或多段貝塞爾曲線,進(jìn)而對分段后的多段貝塞爾曲線采用端點切線平行的方法進(jìn)行繪制,繪制出平行曲線。本發(fā)明實施例中的切分條件具體為:將第一貝塞爾曲線的第一控制點連接到第一起始點得到第一連線,將第一控制點連接到第一終點得到第二連線,該第一連線與第二連線之間的夾角小于預(yù)設(shè)角度。當(dāng)?shù)谝贿B線與第二連線之間的夾角小于預(yù)設(shè)角度時,則滿足切分條件。具體地,此處的預(yù)設(shè)角度可以為90度,也就是說,當(dāng)?shù)谝贿B線與第二連線之間的夾角小于90度時,對該第一貝塞爾曲線進(jìn)行切分操作,對第一貝塞爾曲線進(jìn)行切分后得到兩條貝塞爾曲線,本發(fā)明實施例將該兩條貝塞爾曲線稱為第二貝塞爾曲線和第三貝塞爾曲線。203:對第一貝塞爾曲線進(jìn)行切分操作得到第二貝塞爾曲線和第三貝塞爾曲線。對于該步驟,對第一貝塞爾曲線的具體切分操作如下:對上述貝塞爾關(guān)系式中,在t=0.5處進(jìn)行切分,也就是說t=0.5對應(yīng)的點為切分點,在該切分點出進(jìn)行切分,將第一貝塞爾曲線切分為兩條貝塞爾曲線。切分操作實際上是將步驟201中繪制出的第一貝塞爾曲線進(jìn)行了分段處理,將長度較長的曲線分為長度較短的曲線。本發(fā)明實施例中,需要進(jìn)一步判斷切分后的兩條貝塞爾曲線是否滿足切分條件,若其中一條曲線或兩條曲線滿足切分條件,則對滿足切分條件的曲線繼續(xù)進(jìn)行切分操作,此處進(jìn)行遞歸處理,即進(jìn)行上述第一次切分操作后,對第一次切分后得到的兩條曲線繼續(xù)進(jìn)行第二次切分操作或第三次切分操作,并對第二次切分操作或第三次切分操作得到的分段曲線繼續(xù)進(jìn)行切分操作,直到切分后的N段曲線均不滿足切分條件為止,也就是說對第一貝塞爾曲線進(jìn)行多次切分操作后產(chǎn)生的N段曲線均不滿足切分條件,此時再對該N段曲線統(tǒng)一進(jìn)行后續(xù)處理操作。其中,此處的N為大于2的整數(shù),N的具體數(shù)值與第一貝塞爾曲線的特征有關(guān),本發(fā)明在此不做限定。204:分別判斷第二貝塞爾曲線和/或第三貝塞爾曲線是否滿足切分條件,判斷出第二貝塞爾曲線和/或第三貝塞爾曲線滿足切分條件時,則執(zhí)行切分操作,直到切分后的N段曲線不滿足切分條件為止。對于該步驟,對第一貝塞爾曲線進(jìn)行切分操作得到兩條貝塞爾曲線后,本發(fā)明實施例需要對切分后的這兩條貝塞爾曲線繼續(xù)進(jìn)行切分操作,即判斷這兩條貝塞爾曲線是否滿足切分條件,將滿足切分條件的貝塞爾曲線繼續(xù)進(jìn)行切分處理。該步驟中的切分條件同上述步驟202中的切分條件,此處不再贅述。本發(fā)明實施例對上述第一貝塞爾曲線進(jìn)行切分操作后,得到如圖4a和圖4b所示的兩條貝塞爾曲線,為便于說明,本發(fā)明實施例將切分后的左邊的曲線稱為第二貝塞爾曲線,將切分后的右邊的曲線稱為第三貝塞爾曲線,實際應(yīng)用中,也可以將切分后的左邊的曲線稱為第三貝塞爾曲線,將切分后的右邊的曲線稱為第二貝塞爾曲線,本發(fā)明實施例對此不做限定。具體地,以第一貝塞爾曲線的第一起始點A點為第二貝塞爾曲線的第二起始點,切分點C為第二貝塞爾曲線的第二終點,根據(jù)下述方法求出第二貝塞爾曲線的第二控制點,從而判斷第二貝塞爾曲線的控制點到起始點之間的連線,與控制點到終點之間的連線之間的夾角是否小于90度,若小于90度,則第二貝塞爾曲線滿足切分條件,繼續(xù)進(jìn)行切分操作。第二貝塞爾曲線的第二控制點的計算方式:根據(jù)第二貝塞爾曲線和第一貝塞爾曲線得到第二貝塞爾曲線的第二控制點,具體地,以第一起始點(如圖4a中的A點)為切點,對第一貝塞爾曲線做第一切線,以切分點(如圖4a中的C點)為切點,對第二貝塞爾曲線做第二切線;第一切線和第二切線會存在一個交點,本發(fā)明實施例將該交點作為第二貝塞爾曲線的第二控制點(如圖4a中的D點)。同理,以第一貝塞爾曲線的第一終點B點為第三貝塞爾曲線的第三起始點,切分點C為第三貝塞爾曲線的第三終點,根據(jù)下述方法求出第三貝塞爾曲線的第三控制點,從而判斷第三貝塞爾曲線的控制點到起始點之間的連線,與控制點到終點之間的連線之間的夾角是否小于90度,若小于90度,則第三貝塞爾曲線滿足切分條件,繼續(xù)進(jìn)行切分操作。第三貝塞爾曲線的第三控制點的計算方式:根據(jù)第三貝塞爾曲線和第一貝塞爾曲線得到第三貝塞爾曲線的第三控制點,具體地,以第一貝塞爾曲線的第一終點即第三貝塞爾曲線的第三起始點(如圖4b中的B點)為切點,對第一貝塞爾曲線做第三切線,以切分點即第三貝塞爾曲線的第三終點(如圖4b中的C點)為切點,對第三貝塞爾曲線做第四切線;第三切線和第四切線會存在一個交點,本發(fā)明實施例將該交點作為第三貝塞爾曲線的第三控制點(如圖4b中的E點)。判斷第二貝塞爾曲線和第三貝塞爾曲線是否滿足切分條件的判斷結(jié)果,會出現(xiàn)四種情況:只有第二貝塞爾曲線滿足切分條件;只有第三貝塞爾曲線滿足切分條件;第二貝塞爾曲線和第三貝塞爾曲線均滿足切分條件;第二貝塞爾曲線和第三貝塞爾曲線均不滿足切分條件。該步驟中,判斷出第二貝塞爾曲線和/或第三貝塞爾曲線滿足切分條件時,需要對滿足條件的貝塞爾曲線繼續(xù)執(zhí)行切分操作,直到切分后的N段曲線不滿足切分條件為止。205:以切分后的每段曲線為已知曲線,根據(jù)已知曲線和預(yù)設(shè)的寬度值,繪制出平行曲線。具體地,通過上述步驟203和步驟204的切分操作后,第一貝塞爾曲線會被切分為N段貝塞爾曲線,此處以切分后的每段曲線為已知曲線,對每段已知曲線,根據(jù)預(yù)設(shè)的寬度值進(jìn)行繪制曲線,繪制出每段平行曲線,從而繪制出多段平行曲線,這些多段平行曲線即構(gòu)成本發(fā)明實施例要繪制的平行曲線,完成了繪制流程。下面,本發(fā)明實施例對根據(jù)切分后的每段已知曲線為例進(jìn)行說明,描述繪制出一段平行曲線的具體方法,當(dāng)然,對于其他分段的已知曲線,繪制各分段的平行曲線的方法均相同,本發(fā)明實施例不再贅述。根據(jù)一段已知曲線和預(yù)設(shè)的寬度值,繪制出一段平行曲線的方法如下:在已知曲線的兩側(cè),與已知曲線距離寬度值的一半處分別繪制一條曲線得到第一曲線和第二曲線,此時繪制出的第一曲線和第二曲線即為繪制出的一段平行曲線。也就是說,本發(fā)明實施例在已知曲線的兩側(cè)均繪制一條曲線,且繪制出的每條距離已知曲線的距離相同,即預(yù)設(shè)的寬度值的一半。本發(fā)明實施例提供的方法,通過在繪制平行曲線時,將曲線分為多段,并對分段后的曲線采用端點切線平行的方法繪制出曲線,從而繪制出完美的平行曲線,且對于長度很長的曲線,也能繪制出理想的平行曲線。實施例3參見圖5,本發(fā)明實施例提供了一種繪制平行曲線的設(shè)備,所述設(shè)備包括第一繪制模塊301、判斷模塊302、第一執(zhí)行模塊303、第二執(zhí)行模塊304和第二繪制模塊305:第一繪制模塊301,用于根據(jù)貝塞爾關(guān)系式、第一起始點、第一控制點和第一終點繪制出第一貝塞爾曲線;判斷模塊302,用于判斷第一繪制模塊301繪制出的第一貝塞爾曲線是否滿足切分條件;第一執(zhí)行模塊303,用于當(dāng)判斷模塊302判斷出的第一貝塞爾曲線滿足切分條件時,對第一貝塞爾曲線進(jìn)行切分操作得到切分后的第二貝塞爾曲線和第三貝塞爾曲線,并分別判斷第二貝塞爾曲線和/或第三貝塞爾曲線是否滿足切分條件;第二執(zhí)行模塊304,用于當(dāng)?shù)谝粓?zhí)行模塊303得到的第二貝塞爾曲線和/或第三貝塞爾曲線滿足切分條件時,則執(zhí)行切分操作,直到切分后的N段曲線不滿足切分條件為止,N為大于2的整數(shù);第二繪制模塊305,用于對第二執(zhí)行模塊304得到的每段曲線為已知曲線,根據(jù)已知曲線和預(yù)設(shè)的寬度值,繪制出平行曲線。其中,判斷模塊302,具體用于判斷第一繪制模塊301繪制出的第一貝塞爾曲線的第一控制點到第一起始點的第一連線,與第一控制點到第一終點的第二連線之間的夾角是否小于預(yù)設(shè)角度。具體地,參見圖6,第一執(zhí)行模塊303具體包括切分單元3031和判斷單元3032;切分單元3031,用于當(dāng)判斷模塊302判斷出的第一貝塞爾曲線滿足切分條件時,對貝塞爾曲線的變量取預(yù)設(shè)值,得到切分點;并在切分點對第一貝塞爾曲線進(jìn)行切分操作得到第二貝塞爾曲線和第三貝塞爾曲線;判斷單元3032,用于分別判斷第二貝塞爾曲線和第三貝塞爾曲線是否滿足切分條件。其中,第一執(zhí)行模塊303具體包括切分單元3031和判斷單元3032;切分單元3031,用于當(dāng)判斷模塊302判斷出的第一貝塞爾曲線滿足切分條件時,對貝塞爾曲線的變量取預(yù)設(shè)值,得到切分點;并在切分點對第一貝塞爾曲線進(jìn)行切分操作得到第二貝塞爾曲線和第三貝塞爾曲線;判斷單元3032,具體用于根據(jù)第二貝塞爾曲線和第一貝塞爾曲線得到第二貝塞爾曲線的第二控制點,以切分點為第二貝塞爾曲線的第二終點,以第一起始點為第二貝塞爾曲線的第二起始點;判斷第二控制點到第一起始點的第三連線,與第二控制點到第二終點的第四連線之間的夾角是否小于預(yù)設(shè)角度;當(dāng)?shù)谌B線與第四連線之間的夾角小于預(yù)設(shè)角度時,則判斷出第二貝塞爾曲線滿足切分條件;和/或,判斷單元3032,用于根據(jù)第一貝塞爾曲線和第三貝塞爾曲線得到第三貝塞爾曲線的第三控制點,以切分點為第三貝塞爾曲線的第三終點,以第一終點為第三貝塞爾曲線的第三起始點;判斷第三控制點到第一終點的第五連線,與第三控制點到第三終點的第六連線之間的夾角是否小于預(yù)設(shè)角度;當(dāng)?shù)谖暹B線與第六連線之間的夾角小于預(yù)設(shè)角度時,則判斷出第三貝塞爾曲線滿足切分條件。其中,判斷單元3032具體包括確定控制點子單元、確定子單元和判斷子單元;確定控制點子單元,用于以第一起始點為切點,對第一貝塞爾曲線做第一切線;并以第二終點為切點對第二貝塞爾曲線做第二切線;第一切線和第二切線的交點作為第二貝塞爾曲線的第二控制點;確定子單元,用于以切分點為第二貝塞爾曲線的第二終點;判斷子單元,用于判斷第二控制點到第第一起始點的第三連線,與第二控制點到第二終點的第四連線之間的夾角是否小于預(yù)設(shè)角度;當(dāng)?shù)谌B線與第四連線之間的夾角小于預(yù)設(shè)角度時,則判斷出第二貝塞爾曲線滿足切分條件;和/或,確定控制點子單元,用于以第一終點為切點對第一貝塞爾曲線做第三切線;并以切分點為切點,對第三貝塞爾曲線做第四切線;第三切線和第四切線的交點作為第三貝塞爾曲線的第三控制點;確定子單元,用于以切分點為第三貝塞爾曲線的第三終點;判斷子單元,用于判斷第三控制點到第一終點的第五連線,與第三控制點到第三終點的第六連線之間的夾角是否小于預(yù)設(shè)角度;當(dāng)?shù)谖暹B線與第六連線之間的夾角小于預(yù)設(shè)角度時,則判斷出第三貝塞爾曲線滿足切分條件。其中,第二繪制模塊305,用于在已知曲線的兩側(cè),與已知曲線距離寬度值的一半處分別繪制一條曲線得到第一曲線和第二曲線;第一曲線和第二曲線構(gòu)成平行曲線。本發(fā)明實施例提供的設(shè)備,通過在繪制平行曲線時,將曲線分為多段,并對分段后的曲線采用端點切線平行的方法繪制出曲線,從而繪制出完美的平行曲線,且對于長度很長的曲線,也能繪制出理想的平行曲線。需要說明的是:上述實施例提供的繪制平行曲線的設(shè)備在會在繪制平行曲線時,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將設(shè)備的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的繪制平行曲線的設(shè)備與繪制平行曲線的方法實施例屬于同一構(gòu)思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機(jī)可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1