專利名稱:基于測地線的楦面自動測量方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一般的計算機輔助幾何設(shè)計,尤其涉及一種基于測地線的楦面自動測量方法。
背景技術(shù):
傳統(tǒng)的制鞋工藝一般包括量腳做楦、幫樣設(shè)計、底部件設(shè)計和模具設(shè)計等幾道工序。鞋樣設(shè)計師以鞋楦為依據(jù),設(shè)計出各種款式各種風(fēng)格的鞋子。在設(shè)計前,要先用帶子尺、游標(biāo)卡尺、劃盤針等工具對鞋楦的基本參數(shù)進行測量,然后根據(jù)測量的結(jié)果在鞋楦上定出基本的關(guān)鍵點,并描出基本的關(guān)鍵線。鞋楦測量的工作效率很低,而且精度不高,這直接影響到后期蹺度設(shè)計和樣片設(shè)計的精度,使得鞋子的試樣成功率不高,浪費設(shè)計材料。所以,如何應(yīng)用計算機技術(shù)和數(shù)字幾何處理技術(shù),讓計算機自動地對鞋楦進行全方位的精確測量,已經(jīng)成為制鞋CAD/CAM技術(shù)必須突破的關(guān)鍵難題之一。
將楦面上的關(guān)鍵點用測地線連接形成關(guān)鍵線,就可以實時地對鞋楦進行各種測量。測地線也稱為短程線,在楦面上連接兩點的測地線具有最短距離。所以要解決的關(guān)鍵問題是任意給定網(wǎng)格曲面上的兩點,如何求出一條離散的測地線剛好連接這兩點。Mitchell首先提出了一種復(fù)雜度為O(n2 log n)的MMP算法(MITCHELL J.,MOUNT D.M.,PAPADIMITRIOU C.H.The discrete geodesicproblem.SIAM J.Comput.16,1987,647-668)。但算法過于復(fù)雜,很難實現(xiàn)。隨后,Chen提出了復(fù)雜度為O(n2)的算法(CHEN J.,HAN Y.Shortest paths ona polyhedron;part icomputing shortest paths.Int.J.Comput.Geom.& Appl.6,2,1996,127-144)。1998年,Kimmel提出了復(fù)雜度僅為O(nlogn)的算法(KIMMEL R.,SETHIAN J.A.Computing geodesic paths on manifolds.Proc.National.Academy of Sciences 95,15,1998,8431-8435),但求出的測地線不精確。其它的測地線算法還有擴展的Dijsktra算法(KANAI T.,SUZUKI H.Approximate shortest path on a polyhedral surface and itsapplications.Computer Aided Design 33,11,2001,801-811),以及最近的MMP改進算法(Kirsanov D.,Gortler S.J.,Hoppe H.Fast Exact andApproximate Geodesic Paths on Meshes,2004,Harvard University ComputerScience TR 10-04,May 2004),算法在最快的時候復(fù)雜度僅為O(nlogn)。遺憾的是,擴展的Dijsktra算法要生成大量的輔助邊,MMP改進算法要生成大量的輔助區(qū)間,內(nèi)存消耗都過大。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提出一種基于測地線的楦面自動測量方法。
方法的步驟如下 1)數(shù)字鞋楦的網(wǎng)格表示 用規(guī)則的三維網(wǎng)格表示鞋楦的整個外表面; 2)楦面的參數(shù)化 將數(shù)字鞋楦的幫面、底面和統(tǒng)口面分別進行參數(shù)化,建立楦面與參數(shù)域之間的一一對應(yīng)關(guān)系; 3)楦面上測地線的生成 給定楦面上兩點,在楦面上自動生成過這兩點的測地線,并計算其長度; 4)楦面的自動測量 對鞋楦的基本長度、寬度、高度和圍長進行自動測量。
用規(guī)則的三維網(wǎng)格表示鞋楦的整個外表面是將鞋楦外表面劃分成幫面、底面和統(tǒng)口面三片,每一片都由經(jīng)線和緯線來表示,經(jīng)線和緯線相交形成規(guī)則的四邊形網(wǎng)格。
將數(shù)字鞋楦的幫面、底面和統(tǒng)口面分別進行參數(shù)化,建立楦面與參數(shù)域之間的一一對應(yīng)關(guān)系是在平面上生成三個規(guī)則網(wǎng)格作為參數(shù)域,分別與表示幫面、底面和統(tǒng)口面的三維網(wǎng)格建立一一對應(yīng)關(guān)系。
給定楦面上兩點,在楦面上自動生成過這兩點的測地線,并計算其長度是對楦面上的任意兩點,首先生成一條連接這兩點的初始路徑,然后通過逐步優(yōu)化,沿著楦面的三維網(wǎng)格自動生成這兩點間的最短路徑。
對鞋楦的基本長度、寬度、高度和圍長進行自動測量是利用腳型規(guī)律定出所需測量長度的楦面位置,然后計算出它的直線距離或曲線距離。其中基本長度包括楦全長、楦面長、楦斜長、楦底樣長、后容差、放余量;寬度包括拇趾里寬、小趾外寬、第一跖趾里寬、第五跖趾外寬、腰窩外寬、踵心全寬;高度包括前蹺高、后蹺高、統(tǒng)口后高、楦體后身高;圍長包括跖趾圍長、前跗骨圍長、兜跟圍長。
本發(fā)明的優(yōu)點本發(fā)明很好地結(jié)合了鞋楦的傳統(tǒng)手工測量方法和數(shù)字幾何處理技術(shù),提出了一種測地線的快速自動生成算法,算法復(fù)雜度僅為O(n)。將楦面上的關(guān)鍵點用測地線連接形成關(guān)鍵線,本方法能對鞋楦的各種技術(shù)參數(shù)進行測量,如長度、寬度和圍長,而且測量方法自動準(zhǔn)確,適用于所有頭型和款式的鞋楦。這不僅是制鞋CAD/CAM技術(shù)必須突破的關(guān)鍵難題之一,而且也是進行鞋楦自動檢驗,鞋楦CAD/CAM的必備技術(shù)。
下面結(jié)合附圖和實施例對本發(fā)明作進一步說明。
圖1是本發(fā)明方法的流程圖; 圖2是鞋楦的分片和中線示意圖; 圖3是鞋楦幫面的網(wǎng)格示意圖,圖3a是幫面經(jīng)線示意圖,圖3b是幫面緯線示意圖,圖3c是幫面三維網(wǎng)格示意圖; 圖4是鞋楦底面的網(wǎng)格示意圖,圖4a是底面經(jīng)線示意圖,圖4b是底面緯線示意圖,圖4c是底面三維網(wǎng)格示意圖; 圖5是鞋楦幫面網(wǎng)格的參數(shù)化示意圖; 圖6是鞋楦底面網(wǎng)格的參數(shù)化示意圖; 圖7是跗腰楦面內(nèi)寬的初始路徑示意圖,圖7a是參數(shù)域上的初始路徑示意圖,圖7b是幫面上的初始路徑示意圖; 圖8是跗腰楦面內(nèi)寬的優(yōu)化迭代示意圖,圖8a是第一次逐步優(yōu)化示意圖,圖8b是最后一次優(yōu)化示意圖; 圖9是測量時的鞋楦縱剖面示意圖; 圖10是楦面測量示意圖,圖10a是楦面測量的內(nèi)懷示意圖,圖10b是楦面測量的外懷示意圖,圖10c是楦面測量的底面示意圖。
具體實施例方式 本發(fā)明提出的一種基于測地線的楦面自動測量方法,包括數(shù)字鞋楦的網(wǎng)格表示方法、楦面的參數(shù)化方法、楦面上測地線的自動生成算法和楦面的自動測量技術(shù)四個部分。流程如圖1所表示首先讀取鞋楦數(shù)據(jù),將鞋楦表面表示成規(guī)則網(wǎng)狀結(jié)構(gòu),并參數(shù)化此網(wǎng)格得到二維參數(shù)化網(wǎng)格。然后根據(jù)楦的腳型規(guī)律,自動計算出鞋楦幫面和底面的部分關(guān)鍵點,再運用測地線技術(shù)在某些關(guān)鍵點間用測地線連接,得到鞋楦的關(guān)鍵線,測出鞋楦的各種基本長度、寬度和圍長。
現(xiàn)具體介紹本方法的四個步驟 1.數(shù)字鞋楦的網(wǎng)格表示 為了后面參數(shù)化的方便,本發(fā)明采用規(guī)則的三維網(wǎng)格來表示鞋楦表面。首先,如圖2所示,沿著統(tǒng)口楞線和底邊楞線,把整個楦面分成幫面、底面和統(tǒng)口面三片,然后分別將每一片用規(guī)則網(wǎng)格表示。
幫面的網(wǎng)格由經(jīng)線和緯線組成。幫面經(jīng)線的起點在底邊楞線上,然后沿著幫面向上,其終點在統(tǒng)口楞線上,如圖3a所示。幫面經(jīng)線之間互不相交,背中線和后弧中線都是其中的一條經(jīng)線。幫面緯線的起點在后弧中線上,沿著幫面經(jīng)過背中線再繞回到后弧中線上,終點與起點重合,如圖3b所示。幫面緯線之間也互不相交,底邊楞線是最下面的一條幫面緯線,而統(tǒng)口楞線是最上面的一條幫面緯線。將幫面的經(jīng)線和緯線相交,就形成了表示幫面的四邊形網(wǎng)格。
鞋楦底面的網(wǎng)格也由經(jīng)線和緯線組成。底面緯線的起點在楦底前端點,終點在楦底后端點。底面中線是最中間的一條底面緯線,底邊楞線被底面中線分成兩段,形成最邊上的兩條底面緯線。底面緯線在底面中線兩邊的條數(shù)相等,除了在起點和終點外,互不相交,如圖4b所示。底面經(jīng)線的端點由幫面經(jīng)線的起點組成,列在底面中線兩邊。底面經(jīng)線也互不相交,如圖4a所示。
鞋楦統(tǒng)口面的網(wǎng)格表示方法與底面一樣,以統(tǒng)口中線作為最中間的一條統(tǒng)口緯線,把統(tǒng)口楞線分成兩條最邊上的統(tǒng)口緯線。以幫面經(jīng)線的終點作為統(tǒng)口經(jīng)線的端點。統(tǒng)口經(jīng)線和統(tǒng)口緯線相交形成統(tǒng)口網(wǎng)格。
在上述的網(wǎng)格表示中,幫面、底面和統(tǒng)口面的網(wǎng)格其實也是連成一體的。整個鞋楦網(wǎng)格可以分成兩組截面圈。相連的幫面經(jīng)線,底面經(jīng)線和統(tǒng)口經(jīng)線組成第一組截面圈。其中背中線,統(tǒng)口中線,后弧中線和底面中線形成了一個特殊的截面圈,即鞋楦的縱剖面。而第二組截面圈由幫面的緯線組成。
注意,為了說明方便,附圖中的網(wǎng)格比較稀疏,而實際應(yīng)用中網(wǎng)格要密得多。鞋楦表面的這種網(wǎng)格表示方法,不僅可以有效刻畫楦面的局部特征,而且可以精確地描述整個鞋楦,沒有盲區(qū)。
2.楦面的參數(shù)化 基于鞋楦的網(wǎng)格表示具有一定的規(guī)律性,可以很容易的將鞋楦網(wǎng)格直接參數(shù)化到平面的規(guī)則網(wǎng)格上。為了方便說明,把鞋楦頭部朝左尾部朝右擺放,將面對我們的一面稱為正面,背對我們的一面稱為反面。
首先參數(shù)化鞋楦的幫面網(wǎng)格。將幫面經(jīng)線按圖3a所示進行編號,從后弧中線開始編號為0,按逆時針方向把反面的幫面經(jīng)線依次編號為1,2,…,n,其中背中線編號為n,然后將正面的幫面經(jīng)線依次編號為n+1,n+2,…,2n-1,最后繞回到編號為0的后弧中線,為方面參數(shù)化,也可以把它編號為2n。同樣把幫面緯線也進行編號,從底邊楞線開始編號為0,依次向上編號,到統(tǒng)口楞線編號為m。
現(xiàn)在把編號后的幫面網(wǎng)格映射到二維矩形網(wǎng)格。將編號為i的幫面經(jīng)線映射到線段[(i,0),(i,m)],將編號為j的幫面緯線映射到線段[(0,j),(2n,j)],如圖5所示。這樣,幫面的每一個四邊形網(wǎng)格都有一個唯一的二維矩形與之對應(yīng)。
用同樣的方法參數(shù)化鞋楦的底面網(wǎng)格。如圖4a所示,將底面經(jīng)線從楦頭到楦尾依次編號為1,2,…,n-1。并按圖4b所示,將底面緯線從下到上依次編號為0,1,…,l。底面網(wǎng)格參數(shù)化后的二維網(wǎng)格與幫面略有不同,如圖6所示,編號為i的底面經(jīng)線映射到線段[(i,0),(i,l)],編號為j的底面緯線除首末端點外映射到線段[(1,j),(n-1,j)],底面緯線的首點映射到(0,l/2),末點映射到(n,l/2)。由于底面緯線在底面中線兩邊的條數(shù)相等,l必為偶數(shù),l/2必為整數(shù)。同理可以對統(tǒng)口網(wǎng)格編號然后參數(shù)化,除了統(tǒng)口緯線條數(shù)與底面緯線條數(shù)不一樣,其它都一樣。
參數(shù)化后,除了底面和統(tǒng)口面頭尾兩處的網(wǎng)格為三角網(wǎng)格外,其余的網(wǎng)格均是四邊形網(wǎng)格。為統(tǒng)一起見,把所有的四邊形網(wǎng)格沿著對角線剖分成三角形網(wǎng)格。這樣楦面的每一個三角形網(wǎng)格(或網(wǎng)格點),都有一個唯一的二維三角形網(wǎng)格(或網(wǎng)格點)與之對應(yīng)?,F(xiàn)在,對楦面上的任意一點P,總存在一個三維網(wǎng)格上的三角形包含住它,設(shè)為ΔABC,并設(shè)與之相對應(yīng)的二維三角形為Δabc??梢杂嬎愠鯬在ΔABC中的重心坐標(biāo)(u,v,w) u=Area(PBC)/Area(ABC),v=Area(PCA)/Area(ABC),w=Area(PAB)/Area(ABC)其中Area()表示三角形的面積。這樣,Δabc中與P相對應(yīng)的點p為 p=u·a+v·b+w·c 反過來,對二維網(wǎng)格中某一三角形Δabc中的任意一點p,設(shè)它在Δabc中的重心坐標(biāo)為(u,v,w),那么與Δabc對應(yīng)的三角形ΔABC中與p相對應(yīng)的點P為 P=u·A+v·B+w·C。
這樣,對鞋楦上的任意一點,都有參數(shù)域網(wǎng)格中的點與之一一對應(yīng)。
3.楦面上測地線的自動生成 要進行全方位的鞋楦測量,最關(guān)鍵的是如何計算楦面上任意兩點間的最短曲線距離。即任意給定楦面上兩點P,Q,算法的目標(biāo)是在鞋楦三維網(wǎng)格上尋找一條從P到Q的最短路徑。根據(jù)鞋楦測量的基本要求,只需要考慮P,Q兩點在同一片網(wǎng)格上的情況即可,也就說P,Q要么都在幫面上,要么都在底面上,要么都在統(tǒng)口面上。所以本發(fā)明采用的方法是先利用鞋楦的參數(shù)化,求出一條從P到Q的初始路徑,然后通過迭代逐步優(yōu)化初始路徑,求出精確的最短路徑。算法的計算復(fù)雜度僅為O(n),實時高效。
初始路徑的求法很簡單,設(shè)P,Q兩點在二維參數(shù)化網(wǎng)格上的對應(yīng)點為p,q,用直線段連接pq,與參數(shù)化網(wǎng)格相交得到一系列交點ci(i=1,2,…,k),那么在參數(shù)域上的初始路徑即為(p,c1,c2,…,ck,q)。把交點{c1}映射回鞋楦的三維網(wǎng)格上得到{C1},即得到P,Q之間的一條初始路徑{P,C1,C2,…,Ck,Q)。圖7顯示了跗腰楦面內(nèi)寬的初始路徑,P為背中線上的跗骨標(biāo)志點,Q為內(nèi)懷底邊楞線上的腰窩邊沿點。
得到初始路徑后,通過迭代逐步優(yōu)化來求出精確的最短路徑。記第j(j≥1)次迭代后得到的參數(shù)域上的路徑為<math> <mrow> <msup> <mi>l</mi> <mi>j</mi> </msup> <mo>=</mo> <mrow> <mo>(</mo> <msubsup> <mi>c</mi> <mn>0</mn> <mi>j</mi> </msubsup> <mo>,</mo> <msubsup> <mi>c</mi> <mn>1</mn> <mi>j</mi> </msubsup> <mo>,</mo> <mo>·</mo> <mo>·</mo> <mo>·</mo> <mo>,</mo> <msubsup> <mi>c</mi> <msub> <mi>k</mi> <mi>j</mi> </msub> <mi>j</mi> </msubsup> <mo>)</mo> </mrow> <mo>,</mo> </mrow> </math> 鞋楦三維網(wǎng)格上的相應(yīng)路徑為<math> <mrow> <msup> <mi>L</mi> <mi>j</mi> </msup> <mo>=</mo> <mrow> <mo>(</mo> <msubsup> <mi>C</mi> <mn>0</mn> <mi>j</mi> </msubsup> <mo>,</mo> <msubsup> <mi>C</mi> <mn>1</mn> <mi>j</mi> </msubsup> <mo>,</mo> <mo>·</mo> <mo>·</mo> <mo>·</mo> <mo>,</mo> <msubsup> <mi>C</mi> <msub> <mi>k</mi> <mi>j</mi> </msub> <mi>j</mi> </msubsup> <mo>)</mo> </mrow> <mo>,</mo> </mrow> </math> 那么<math> <mrow> <msup> <mi>l</mi> <mn>0</mn> </msup> <mo>=</mo> <mrow> <mo>(</mo> <msubsup> <mi>c</mi> <mn>0</mn> <mn>0</mn> </msubsup> <mo>,</mo> <msubsup> <mi>c</mi> <mn>1</mn> <mn>0</mn> </msubsup> <mo>,</mo> <mo>·</mo> <mo>·</mo> <mo>·</mo> <mo>,</mo> <msubsup> <mi>c</mi> <msub> <mi>k</mi> <mn>0</mn> </msub> <mn>0</mn> </msubsup> <mo>)</mo> </mrow> <mo>=</mo> <mrow> <mo>(</mo> <mi>p</mi> <mo>,</mo> <msub> <mi>c</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>c</mi> <mn>2</mn> </msub> <mo>,</mo> <mo>·</mo> <mo>·</mo> <mo>·</mo> <mo>,</mo> <msub> <mi>c</mi> <mi>k</mi> </msub> <mo>,</mo> <mi>q</mi> <mo>)</mo> </mrow> <mo>,</mo> </mrow> </math> <math> <mrow> <msup> <mi>L</mi> <mn>0</mn> </msup> <mo>=</mo> <mrow> <mo>(</mo> <msubsup> <mi>C</mi> <mn>0</mn> <mn>0</mn> </msubsup> <mo>,</mo> <msubsup> <mi>C</mi> <mn>1</mn> <mn>0</mn> </msubsup> <mo>,</mo> <mo>·</mo> <mo>·</mo> <mo>·</mo> <mo>,</mo> <msubsup> <mi>C</mi> <msub> <mi>k</mi> <mn>0</mn> </msub> <mn>0</mn> </msubsup> <mo>)</mo> </mrow> <mo>=</mo> <mo>{</mo> <mi>P</mi> <mo>,</mo> <msub> <mi>C</mi> <mn>1</mn> </msub> <mo>,</mo> <msub> <mi>C</mi> <mn>2</mn> </msub> <mo>,</mo> <mo>·</mo> <mo>·</mo> <mo>·</mo> <mo>,</mo> <msub> <mi>C</mi> <mi>k</mi> </msub> <mo>,</mo> <mi>Q</mi> <mo>}</mo> <mo>,</mo> </mrow> </math> 再記Lj所經(jīng)過的楦面三角形帶為Tj,將Tj展開得到的平面三角形帶為tj。那么第j(j≥1)次迭代可分四步完成。
步1將Tj-1依次展開到平面上得到tj-1; 步2在tj-1形成的帶狀區(qū)域內(nèi)求出最短路徑lj; 步3計算lj的長度,如果它大于等于lj-1的長度,結(jié)束迭代,Lj-1即為最終所求的最短路徑,否則進行下一步; 步4根據(jù)lj更改三角形帶tj-1得到tj,并刪除lj中的相重路徑點,然后把tj和lj映射回鞋楦的三維網(wǎng)格上得到Tj和Lj。
三角形帶展平時,首先把Tj中的第一個三角形放置到平面上的任意位置,然后把Tj中的后續(xù)三角形根據(jù)與前一三角形的相鄰邊依次展平,展平時保持三角形的邊長和內(nèi)角不變。
三角形帶展平后,在其形成的帶狀區(qū)域內(nèi)求出最短路徑lj是本發(fā)明的核心算法。設(shè)tj中兩三角形的共享邊依次為e0,e1,…,er。令lj最初只有兩個路徑點(p,q),把共享邊作為lj的約束邊,通過調(diào)用遞歸算法MinPath(0,r,p,q)不斷插入新的路徑點就可以算出lj。算法中產(chǎn)生的新路徑點一定位于某一約束邊上,使得lj一定位于帶狀區(qū)域tj內(nèi),從而保證Lj一定貼在楦面上,不超出邊界。算法MinPath可以用c++語言偽代碼表述為 //輸入?yún)?shù)begin和end表示約束邊的起始編號和末尾編號 //輸入?yún)?shù)cb和ce表示兩路徑點,算法求出新的路徑點插到這兩點之間 MinPath(int begin,int end,Point cb,Point ce) { //如果cb與ce之間已經(jīng)沒有約束邊,則返回 if(begin>end)return; //初始化cmax,dmax,imax<!-- SIPO <DP n="6"> --><dp n="d6"/> if(ebegin與線段cbce不相交) { cmax=ebegin兩端點中離線段cbce最近的一點; dmax=cmax到cbce的距離; } else { cmax=ebegin與線段cbce的交點; dmax=0; } imax=begin; //求出與線段cbegin cend距離最遠(yuǎn)的約束邊 for(i=begin+1;i<=end;i++) { if(ei與線段cbce不相交) { ti=ei兩端點中離線段cbce最近的一點; d=ti到cbce的距離; if(d>dmax) { dmax=d; cmax=ti; imax=i; } } } if(dmax=0)//如果所有的約束邊都與cbce相交 { tbegin=cmax; for(i=begin;i<=end;i++) {<!-- SIPO <DP n="7"> --><dp n="d7"/> 把交點ti作為路徑點插入到路徑點cb與ce之間; } } else//否則,在cbcmax之間與cmaxce之間分別尋找路徑點并插入 { 把cmax作為路徑點插入到路徑點cb與ce之間; MinPath(begin,imax-1,cb,cmax); MinPath(imax+1,end,cmax,ce); } } lj只是在帶狀區(qū)域tj內(nèi)的最短路徑,為求出全局最短路徑,還必須調(diào)整tj。對于lj的路徑點cij,如果它位于s(s≥1)個約束邊的端點上,那么它在lj中將是s重的,在s>1時我們將刪除其余的s-1個路徑點,使其成為單重路徑點。然后考慮線段ci-1jci+1j,如果ci-1jci+1j與這s個約束邊不相交,那么調(diào)整tj在cij處的三角形,設(shè)tj中擁有點cij的三角形序列為…,tb,t1,…,ts-1,te,…,其中tb和te分別為擁有線段ci-1jcij和線段cijci+1j的三角形,那么調(diào)整的方法就是刪除三角形t1至ts-1,并在tb和te之間加入?yún)?shù)域上擁有cij的其它三角形連接tb和te。
仍以跗腰楦面內(nèi)寬為例,圖7b顯示了T0,圖8左邊一列顯示了其第一次迭代過程,從上到下分別是把T0展開后得到的t0,在t0中求出的最短路徑l1,以及更改t0后得到的T1,而圖8右邊一列顯示了其最后一次迭代,從上到下分別為t6,l7,以及最終結(jié)果L7。l7是一條直線,這也說明了L7已是最短路徑。
4.楦面的自動測量 基于鞋楦的網(wǎng)格表示方法和楦面的測地線算法,就可以很容易地對鞋楦進行全方位的自動測量。不失一般性,假設(shè)所要測量的鞋楦是右腳楦,鞋楦的縱剖面位于平面z=0上,楦頭朝x軸負(fù)方向,楦尾朝x軸正方向,前掌凸度部位點正好位于x軸上,如圖9所示。
記楦底前端點為J,楦底后端點為A,統(tǒng)口后端點為A0,那么鞋楦的基本高度可以這樣計算 前蹺高=|Jv|, 后蹺高(后跟高)=|Ay|, 統(tǒng)口后高=|A0y|, 楦體后身高=‖AA0‖,其中Jy表示J的y坐標(biāo),‖·‖表示兩點間的歐氏距離。
在后弧中線上,通過腳型規(guī)律或者搜索x坐標(biāo)最大的點定出后跟突點,記為A3,那么鞋楦的基本長度為 楦全長=|A3x-Jx|, 楦面長=<JA3>, 楦上斜長=<JA0>,楦下斜長=<JA>, 楦底長=|A0x-Jx|, 楦底樣長=底面中線的長度, 后容差=|A3x-Ax|, 放余量=楦底樣長-腳長+后容差,其中<·>表示兩點在楦幫面上的最短距離。由于內(nèi)外懷的差別,楦面長、楦上斜長、楦下斜長在內(nèi)懷和外懷的長度是不一樣的,需分別計算,如圖10a,b所示。
在鞋楦底部,在底面中線上,利用腳型規(guī)律和下面的計算公式依次定出拇趾外突部位點,小趾端部位點,第一跖趾部位點,第五跖趾部位點,跗骨突度部位點,腰窩部位點和踵心部位點,分別記為H,G,F(xiàn),E,D,C,B。
部位長度=腳長×部位規(guī)律系數(shù)-后容差,比如腳長為250mm,后容差為5mm時, 拇趾外突部位長度=250×90%-5=220mm,然后從A點開始沿著底面中線走過220mm,即為拇趾外突部位點處。接著在各部位點處定義一平行于x=0的平面,此平面與底邊楞線相交,得到與部位點相對應(yīng)的邊沿點,與背中線相交,得到與部位點相對應(yīng)的標(biāo)志點,如圖10所示,分別記為H1,G2,F(xiàn)1,E2,D0,C0,C1,C2,其中下標(biāo)為0表示與背中線的交點,下標(biāo)為1表示與內(nèi)懷底邊楞線的交點,下標(biāo)為2表示與外懷底邊楞線的交點。那么楦底的基本寬度為 拇趾里寬=<HH1>, 小趾外寬=<GG2>, 第一跖趾里寬=<FF1>, 第五跖趾外寬=<EE2>, 腰窩外寬=<CC2>。其中<·>表示兩點在楦底面上的最短距離。然后在測地路徑EE2上定出分踵點R,使得<RE2>=<FF1>。在B點以向量RA為法向作平面分別交內(nèi)外懷底邊楞線于B1,B2。那么
權(quán)利要求
1.一種基于測地線的楦面自動測量方法,其特征在于,方法的步驟如下
1)數(shù)字鞋楦的網(wǎng)格表示
用規(guī)則的三維網(wǎng)格表示鞋楦的整個外表面;
2)楦面的參數(shù)化
將數(shù)字鞋楦的幫面、底面和統(tǒng)口面分別進行參數(shù)化,建立楦面與參數(shù)域之間的一一對應(yīng)關(guān)系;
3)楦面上測地線的生成
給定楦面上兩點,在楦面上自動生成過這兩點的測地線,并計算其長度;
4)楦面的自動測量
對鞋楦的長度、寬度、高度和圍長進行自動測量。
2.根據(jù)權(quán)利要求1所述的一種基于測地線的楦面自動測量方法,其特征在于,所述的用規(guī)則的三維網(wǎng)格表示鞋楦的整個外表面是將鞋楦外表面劃分成幫面、底面和統(tǒng)口面三片,每一片都由經(jīng)線和緯線來表示,經(jīng)線和緯線相交形成規(guī)則的四邊形網(wǎng)格。
3.根據(jù)權(quán)利要求1所述的一種基于測地線的楦面自動測量方法,其特征在于,所述的將數(shù)字鞋楦的幫面、底面和統(tǒng)口面分別進行參數(shù)化,建立楦面與參數(shù)域之間的一一對應(yīng)關(guān)系是在平面上生成三個規(guī)則網(wǎng)格作為參數(shù)域,分別與表示幫面、底面和統(tǒng)口面的三維網(wǎng)格建立一一對應(yīng)關(guān)系。
4.根據(jù)權(quán)利要求1所述的一種基于測地線的楦面自動測量方法,其特征在于,所述的給定楦面上兩點,在楦面上自動生成過這兩點的測地線,并計算其長度是對楦面上的任意兩點,首先生成一條連接這兩點的初始路徑,然后通過逐步優(yōu)化,沿著楦面的三維網(wǎng)格自動生成這兩點間的最短路徑。
5.根據(jù)權(quán)利要求1所述的一種基于測地線的楦面自動測量方法,其特征在于,所述的對鞋楦的長度、寬度、高度和圍長進行自動測量是利用腳型規(guī)律定出所需測量長度的楦面位置,然后計算出它的直線距離或曲線距離,其中長度包括楦全長、楦面長、楦斜長、楦底樣長、后容差、放余量;寬度包括拇趾里寬、小趾外寬、第一跖趾里寬、第五跖趾外寬、腰窩外寬、踵心全寬;高度包括前蹺高、后蹺高、統(tǒng)口后高、楦體后身高;圍長包括跖趾圍長、前跗骨圍長、兜跟圍長。
全文摘要
本發(fā)明公開了一種基于測地線的楦面自動測量方法。該方法包括1)數(shù)字鞋楦的網(wǎng)格表示,2)楦面的參數(shù)化,3)楦面上測地線的生成,4)楦面的自動測量。本方法很好地結(jié)合了鞋楦的傳統(tǒng)手工測量方法和數(shù)字幾何處理技術(shù),提出了一種測地線的快速自動生成算法,算法復(fù)雜度僅為O(n)。將楦面上的關(guān)鍵點用測地線連接形成關(guān)鍵線,本方法能對鞋楦的各種技術(shù)參數(shù)進行測量,如長度、寬度和圍長,而且測量方法自動準(zhǔn)確,適用于所有頭型和款式的鞋楦。這不僅是制鞋CAD/CAM技術(shù)必須突破的關(guān)鍵難題之一,而且也是進行鞋楦自動檢驗,鞋楦CAD/CAM的必備技術(shù)。
文檔編號A43D1/04GK1601534SQ20041006747
公開日2005年3月30日 申請日期2004年10月22日 優(yōu)先權(quán)日2004年10月22日
發(fā)明者王青 申請人:浙江大學(xué)