苑志剛 YUAN Zhi-gang;梁繼東 LIANG Ji-dong
(華北地質(zhì)勘查局五一九大隊,保定 071000)
(519 Team of North China Geological Exploration Bureau,Baoding 071000,China)
雙線繪制的計算方法
苑志剛 YUAN Zhi-gang;梁繼東 LIANG Ji-dong
(華北地質(zhì)勘查局五一九大隊,保定 071000)
(519 Team of North China Geological Exploration Bureau,Baoding 071000,China)
在現(xiàn)代的多種行業(yè)的計算機輔助處理軟件中,圖形處理是必不可少的,然而我們實際遇到的圖形是非常復(fù)雜的,面對復(fù)雜的圖形,我們要做的首先就是對圖形進(jìn)行分析,然后對圖形進(jìn)行數(shù)學(xué)描述,在此基礎(chǔ)上進(jìn)行分析圖形的形成過程,進(jìn)而實現(xiàn)對圖形的操作,實現(xiàn)我們想要實現(xiàn)的效果。
圖形;角度;偏移
在現(xiàn)代的多種行業(yè)的計算機輔助處理軟件中,圖形處理是必不可少的,然而我們實際遇到的圖形是非常復(fù)雜的,面對復(fù)雜的圖形,我們要做的首先就是對圖形進(jìn)行分析,然后對圖形進(jìn)行數(shù)學(xué)描述,在此基礎(chǔ)上進(jìn)行分析圖形的形成過程,進(jìn)而實現(xiàn)對圖形的操作,實現(xiàn)我們想要實現(xiàn)的效果。
在比較常用的繪圖軟件中(如Autodesk CAD)都會有線段偏移或繪制雙線的功能,它的應(yīng)用非常廣泛。但是這些軟件繪制的雙線不一定能滿足我們的要求,所以我們非常有必要了解其內(nèi)部的算法,以更好在我們的工作中應(yīng)用,下面我將就繪制雙線的計算方法進(jìn)行一下說明。
繪制雙線要求:已知折線a,折線a的不同節(jié)點的角度任意,要求繪制到折線a的距離為d的兩條折線,在a的不同的位置d的大小是可變的,并且要求繪制的兩條折線中間不能中斷。
首先從一般性的圖形入手,如圖1所示,由中心線a向兩側(cè)偏移指定的距離來得到兩條邊線。
首先為了使圖形便于說明問題,對圖形上各個節(jié)點進(jìn)行編號,如圖2所示。
要根據(jù)中心線得到兩條輪廓線,最主要的是要得到輪廓線上各個節(jié)點的坐標(biāo)(如點 A、B、C、K、L、M 等),而這些節(jié)點是由AB與BC或是KL與LM這樣的相鄰的直線的相交而得到的。最先要做的就是要得到AB、BC、KL、MN樣的直線。根據(jù)J、I兩點所在的直線依據(jù)指定的距離得到垂直于其的方向的兩條直線,這只需要根據(jù)解析幾何的公式就能直接得到。同理可以得到BC和LM兩條直線,然后做直線AB與直線BC的交點就能得到點B,做直線KL與直線LM的交點就能得到點L?,F(xiàn)在問題出現(xiàn)了,如何分清直線AB與直線BC相交還是與直線LM相交呢?在任意給定的圖形空間中是沒有上下左右之分的。
經(jīng)過研究發(fā)現(xiàn)其中的規(guī)律,將直線AB、BC、KL、LM、JL、LH都看成是有方向的直線,則有如下結(jié)論,將點J看作笛卡爾直角坐標(biāo)系的原點,設(shè)原點到直線JI的角度為A1,原點到直線JB的角度為A2,原點到直線JL的角度為A3。如果A1,A2,A3這三個角有的角度在第一象限,有的在第四象限,則用第四象限的這個角度減去360度,經(jīng)過這番處理后,三個角度始保持這樣的關(guān)系:A2<A1<A3。然后以點 I為原點,在得到角度 B1,B2,B3,根據(jù) B1,B2,B3的大小關(guān)系就可以確定哪兩條直線的交點才是輪廓線上正確的節(jié)點的坐標(biāo)。這樣將兩側(cè)的節(jié)點的坐標(biāo)分別記錄就得到了輪廓線的邊界。
在得到點B和點L之后,用同樣的方法,將點I看作是坐標(biāo)系的原點,從而得到點M和點C,依次類推,我們就得到了折線a偏移指定距離d的兩條折線。
上述是比較理想的狀況,在實踐中還會有其他問題。
當(dāng)距離d到a的距離在不同的位置寬度不同的時候就需要做不同的處理。如圖3所示,在點L處的寬度發(fā)生變化,這種情況下首先要根據(jù)一般情況下的理論,計算得到直線AB、直線FG、直線CD、直線HI,然后根據(jù)實際情況計算得出直線HC,然后通過計算直線FG與HC的交點得到點G,通過直線HI與直線HC的交點得到點H,從而得到線段HG;計算直線AB與直線HC的交點得到點B,計算線段CD與直線HC得到交點C,從而得到直線BC。從而得到如圖3所示的圖形。
在繪制這種偏移線的時候還有三個方向的情況,如圖4所示在點B處折線有三個方向,為了得到如圖所示的效果,在繪制過程中,要有不同的處理方法。首先不考慮三個方向的情況,例如先繪制折線ABC對應(yīng)的線段,但是要記錄點B,并且記錄與點B相關(guān)的直線 ML、LK、EF、IJ。當(dāng)這些完成之后,在重新繪制直線BD對應(yīng)的折線,用直線FG與HI和直線EF與IJ分別相交,并且取得交點F和I。然后修改這四條線段的端點為點I和點F。這樣就解決了三個方向的多分支問題。如果有四個方向,可以用同樣的方法進(jìn)行解決,只不過計算的過程更加復(fù)雜一些。
下面就繪制圖形時候得一些特殊情況進(jìn)行說明。以圖2為例,當(dāng)直線JI和直線IH之間的夾角為0時,直線AB與直線BC、直線KL與直線LM之間的夾角也為0,他們就成為了同一條直線,這時采用取直線的交點的方法來得到點B和點L是錯誤的。其實在將點I在垂直于直線JL的方向上指定距離得到的兩個點就是輪廓線上的節(jié)點,只不過要分清這兩個節(jié)點直線JI的那一側(cè)。在應(yīng)用中還有其他的一些邊界需要考慮,如當(dāng)中心線只有兩個節(jié)點的情況,輪廓線的兩段如何進(jìn)行封閉等在實際應(yīng)用中都應(yīng)給予考慮。
運用上述理論,不僅可以繪制任意的雙側(cè)折線,而且可以繪制單側(cè)的雙折線或是多條折線。
[1]GB 50026-2007,工程測量規(guī)范[S].
[2]CJJ/T8-2011,城市測量規(guī)范[S].
[3]潘志庚,胡小強.中國圖形工程:2003[J].中國圖象圖形學(xué)報,2004(06).
The Calculation Method of Double Line Drawing
In the various modern computer-aided processing soft wares,graphics processing is essential,but the graphics we actually encounter are very complex.The first thing to do is to analyze the graphic,and then mathematical description of the graphics.Based on this,the formation process of analysis graphics is carried out,and then to realize the graphics operation,thus achieving the required effect.
graphics;angle;offset
苑志剛(1979-),男,山東安丘人,工程師,研究方向為管線測量及管理。
TP31
A
1006-4311(2014)11-0219-02