專利名稱:利用中心軸變換的字體及其書寫體的變形和光柵化的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及輪廓線字體,從一基本模樣,一面維持從筆劃粗細入手的模樣的重要形態(tài),同時變換生成模樣的方式,使之符合任意設(shè)定尺寸的邊框。
本發(fā)明雖然對諺文及漢字的字元和筆劃的變形及生成特別有用,但此方法也可應(yīng)用于以羅馬字入手的全部文字中去。
在諺文/漢字的字體制作中,最重要的問題點是由字數(shù)過多引起的。在諺文的情況下,欲表現(xiàn)全部現(xiàn)代語需要11,172字的文字,把連古語一起作為單一代碼的字元組合進行表示的情況下,從邏輯上說可能有的文字就變?yōu)閿?shù)十萬字。當(dāng)然其中的大部分是無意義的文字,但若把在古典書籍中即使出現(xiàn)一次的文字全部合起來大約也有2萬左右。
對漢字的單一代碼也應(yīng)制作2萬左右的文字,因此在制作上問題很多,首先為了制作必要的全部文字,必需花費比羅馬字更多的精力,即便花費過多的精力制作字體,要想防止字元的統(tǒng)一性缺點、字干等重要字體信息的不均勻性等所引起的字體質(zhì)量低劣,特別是在屏幕字體的情況下,暗示的困難難以言表,非常之大。
一部分字體的制作公司確保將同一字元按尺寸分類,然后使用尺寸適當(dāng)?shù)淖衷脫Q,提高工作效率。這就是所謂的用諺文進行的拼接(jjog-jja由二個以上的活字各取每一部分,并合成為一字的活字)操作?;蛘?,在漢字的情況下,采取把文字按筆劃單位分類,確保多種類型的筆劃,然后,把這種筆劃組合起來制成文字的方法。這就是所謂的筆劃分離(stroke separation)方法。雖然上述的這種拼接法和筆劃分離方法在提高操作效率方面是有用的,但難于解決個別制作出來的基本單位(字元或筆劃)相互不均勻的問題,另外制作這樣的基本單位也是個不容易的課題。中心軸變換在平面上的圖形可以由最大的多個內(nèi)切圓的集合表示并可再構(gòu)成。此時將這種最大內(nèi)切圓的中心連線作為中心軸,并追加并考慮以中心軸的各點為中心的最大內(nèi)切圓的半徑的信息的方法叫做中心軸變換(Media Axis Transform)。中心軸變換自Blum最初提出以來,已被積極地進行了研究,D.T.Lee、R.L.Drysdate、M.Held、V.Srinivasan、L.R.Nackman和C.K.Yap等人提出了求中心軸變換的方法??墒窃诖饲闆r下,成為邊界的曲線(Boundary Curve)僅限于直線線段(Line Segment)和圓弧(Circular Arc),根據(jù)本發(fā)明者的研究可解決邊界為一般曲線形態(tài)的情況。
本發(fā)明的目的在于,提供一種從一基本模樣,一面維持從筆劃粗細入手的模樣的重要形態(tài),同時來變換生成模樣的使之使全體尺寸符合任意給定的邊框方式。
為達到上述目的,本發(fā)明提供一種字體書體變形方式,在把給定的字元變形為任意的尺寸的書體變形方式中,其特征在于,包括求出上述給定的字元中心線的第1階段;利用上述中心軸和以該中心軸各點為中心的最大內(nèi)切圓求出切點的第2階段;以及將與上述中心軸各點和上述各切點有關(guān)信息應(yīng)用于上述字元變形的第3階段。
在本發(fā)明中作為另一實施例,還提供一種把給定的字元變形為任意尺寸的字體書寫體變形方式,其特征在于,包括求上述設(shè)定的字元中心線的第1階段;根據(jù)上述給定的字元美觀上的要求,求出輔助線的第2階段;利用上述中心軸各點和以該中心軸各點為中心的各最大內(nèi)切圓求出切點的第3階段;以及將上述輔助線、上述中心軸各點和上述各切點的信息應(yīng)用于上述字元變形的第4階段。
此外本發(fā)明還提供一種把給定的字元變形為任意尺寸的字體書寫體變形方式,其特征在于,包括求出上述給定的字元中心軸的變換的第1階段;移動上述中心軸變換的第2階段;以及由上述被移動的中心軸變換求出包絡(luò)線曲線的第3階段。
下面,參照所附的附圖詳細說明本發(fā)明的實施例。
圖1是諺文文字“ス”的模樣和中心軸的示意圖;圖2是諺文文字“ス”的模樣、中心軸及與中心軸的若干個點對應(yīng)的最大內(nèi)切圓的示意圖;圖3是給定的字元及其中心軸信息的數(shù)據(jù)示意圖;圖4是關(guān)于圖2的文字的不同尺寸的邊框變形的字元的示意圖;圖5是變形后的字元及其中心軸信息的數(shù)據(jù)示意圖;圖6是仿射變換的參數(shù)的示意圖;圖7是二切線算法的基本原理圖;圖8是單切線算法的相關(guān)示意圖;圖9是二次曲線的示意圖;圖10是多重點處理的相關(guān)示意圖;圖11是把圖2的圓按圖3的順序所附與的編號的示意圖;圖12是把變形的模樣的閉合點按曲線方向順序書寫的示意圖;以及圖13是包含圖12相關(guān)閉合點的數(shù)據(jù)示意圖。
圖1是表示諺文文字“ス”的模樣和中心軸的示意圖。而圖2表示了諺文文字“ス”的模樣、中心軸及與中心軸的若干個點對應(yīng)的最大內(nèi)切圓。如上所述,中心軸由平面上曲線匯合點表示,如圖1的104那樣,把多條曲線匯合點作為多重點(Bifurcation Point)。把與此對應(yīng)的最大內(nèi)切圓(圖2的202)作為多重圓(Bifurcation Circle)。把最大內(nèi)切圓與構(gòu)成圖形邊界的曲線的匯合點稱為切點(Contact Point)。如圖2的204所示,該多重點具有三個切點,一般來講,多重點總是具有三個以上的切點。由多重點引出的中心軸的曲線是條如圖1的106所示的無分支的連續(xù)曲線,這樣的曲線與其他的多重點匯合,或以切點為一個的中心軸的點上終止。
這樣的曲線的點為中心的最大內(nèi)切圓的切點有二個(圖2的206)。這樣一來,一般來講,切點的數(shù)目為n的中心軸的點(或與此對應(yīng)的最大內(nèi)切圓)作為n條線(n-Prong)點(或圓)。
若透徹地看待發(fā)現(xiàn)諺文和漢字的許許多多的文字和字元,其尺寸多種多樣,其種類繁多,但是可以知道實際上可由若干個基本形態(tài)的變換表示。諺文
的“ス”和
的“ス”實際上可理解為尺寸不同模樣相同的“ス”。但是,此處的“ス”的模樣雖然有所變化,但以文字的寬度不得變化為條件(將文字做單純的乘法變形,此情況下的寬度就有變化)。具體表現(xiàn)這種寬度不得改變的必要條件的最佳方式是中心軸變換。當(dāng)然,對于羅馬字來講,雖然使用稱為詞干(Stem)的用語,這里的寬度概念是指大致相對的直線間的距離。與諺文的“O”的內(nèi)側(cè)曲線與外側(cè)曲線相對的間隔的意義相當(dāng),也有限制意義的曲線字干(Curve Stem)的概念,但對諺文和漢字來講,在曲線形式自由變化的輪廓字體中要建立這種稱作字干的概念是困難的。
為此本發(fā)明者利用中心軸變換,對此已做一般地解決。即設(shè)想中心軸沿筆端(筆鋒)行進的路線,是將中心軸變換的半徑信息可以看做把筆下壓到何種程度的尺寸信息。這樣一來,就將連接上尖端和多重點的2-尖端點可以看做筆劃。即圖1的108表示出的那種筆劃。
圖2同時表示出設(shè)定的字元及其中心軸變換信息,圖3是其數(shù)據(jù)。標號302是多重點或1-切線點的一覽表。其中的切點有三個的點全是多重點。切點有一個的點都是1-切線的點。304列出了2-切線的點,各點全各有二個切點。312表示中心軸點的座標,314表示其半徑,而316表示各切點的座標。
圖4示出了又一種尺寸邊框的變形的字元。這里,雖對整體尺寸作了改變,重要一點是所對應(yīng)的圓的半徑未變。圖5是改變后的字元的數(shù)據(jù)。這些數(shù)據(jù)的記述方式與圖3相同。
此種變形的一實施例利用仿射變換(Affine Transform)。一般,在下述的2-切線算法和輔助線算法中,雖然使用非線性變換,但對全體使用仿射變換也可。在此處利用于所看到變形的仿射變換的參數(shù)記載于圖6。標號602表示矩陣A,604表示平行移動矢量b。此種變形的原理如下。
首先,從包圍設(shè)定的字元的邊框(Bounding Box)信息和容納新字元的新邊框來計算仿射變換。仿射變換是Txy=Axy+b=abcdxy+ef]]>雖然表示成上述形式,但此例中設(shè)b=c=0,a=x4-x3x2-x1,]]>d=y4-y3y2-y1]]>,而e設(shè)定為x3-x4-x3x2-x1x1]]>f由
設(shè)定。一般把仿射變換設(shè)想為旋轉(zhuǎn)或剪切(Shearing)等,設(shè)定比上述情況更為復(fù)雜的條件。或者,如下文所述,由對每一筆劃進行另一仿射變換,或更一般地說進行非線性變換,從美觀方面提高質(zhì)量。但是,這種多種變換的應(yīng)用,可以說完全不脫離本發(fā)明基本精神和方法論的應(yīng)用例,故在本發(fā)明中說明上述仿射變換的作用。
中心軸雖是連續(xù)的曲線,但本發(fā)明之目的在于尋求成為最終圖形的邊曲線(Bounding Box),所以若能尋求可以與原來設(shè)定的曲線十分近似的中心軸的點就已足夠了。此處僅僅把選定的最大內(nèi)切圓本身作為基本數(shù)據(jù)。
圖7表示變形的基本原理。圖7A表示變形前的最大內(nèi)切圓的中心P及其二個切點的(X1,Y1)、(X2,Y2)的座標。把同連接P和切點(X1,Y1)的半直線相垂直,經(jīng)過點(X1,Y1)的直線l1與同連接P和切點(X2,Y2)的直線相垂直,經(jīng)過點(X2,Y2)的直線l2的匯合點稱作Q。把連接點P和點(X1,Y1)的直線與直線PQ所構(gòu)成的角記作θ,則下式成立cosθ=r|PQ|]]>其中的|PQ|是指連接自P至Q線段的長度,r是圓的半徑。如果l1與l2平行,因為Q是處在無限遠的點,無定義,把|PQ|看做無限長,由于
為零,則cosθ=0,即可以是θ=90°的解析意義。此時把PQ看做經(jīng)過P點的與l1和l2平行的直線。若將如下的仿射變換T適用于圖7A,首先將P點向圖7B的P′=T(P)的方向移動,然后將仿射變換的2×2矩陣A適用于矢量υ=PQ,計算新的矢量υ′=Aa,向該υ的方向自P引一條半直線,其次決定θ’僅在此時,設(shè)定r’=r,因此可以決定θ’。θ′=arccos(|v|cosθ|Av|)]]>此時,角度的計算,當(dāng)然是把逆時針方向作為正,必須連符號一起加以考慮。若θ=90°,即在l1與l2平行時,設(shè)定θ’也為90°。若確定圖7B的θ’,就確定了切點(X1’,Y1’),但是切點(X1’,Y1’)的半直線與半直線P’Q’所成的角度作成θ’。若θ’=90°時,選擇使連接P’與點(X1’,Y1’)的半直線與半直線P’Q’變成直角的點(X1’,Y1’)。這樣就可決定二切線圓的變換關(guān)系。
單切線圓的變換關(guān)系如下。圖8A的半徑為r,中心為P的圓是具有一個切點Q的模樣。若決定仿射變換T,則新的P點像上述那樣,決定P’=T(P)。再有,以υ=PQ代表自P向Q的矢量時,新的矢量υ’為υ’=Aυ,設(shè)定Q’在自P向υ’的半直線與以P為中心半徑為r的圓的匯合點(參照圖8)。
這樣一來,若決定了新的各切點,則將2切點間連成二次曲線。在此時,首先說明使用本身為真體字體的曲線原型的二次曲線的字體情況。使用三次曲線的柱形書寫體字體的原理在后邊追述。
如圖9所述,當(dāng)知道P0點和P2點,而且知道P0與P2點的切線矢量后,并將此切線矢量方向的二條半直線的匯合點記作P1,則二次曲線可表示成C(t)=P0(1-t)2+P12(1-t)t+P2t2其中的t在0≤t≤1的范圍。此時的P0、P2點為線上點,而P1為線外點。按以上變換新確定的切點同時具有全部仿置信息和切線矢量信息。由這種切線信息計算交點,可以尋求設(shè)定的切點與下一個切點間的線外點,由此3點信息根據(jù)上述公式可以描出二次曲線。若設(shè)定的二切點的連接狀態(tài)是線段,就把新決定的二切點用線段連接。
對多重點的處理一般采用與上述方式不同的方式為好。在視覺上多重點起著與其它筆劃相互匯合的交點的作用,仿射變換程度大,或者各筆劃受相互不同的仿射變換時,切點附近的模樣變得非常失真。為防止這一點,此時采用如下的方式。首先(根據(jù)尋求對稱軸變換的算法)尋求多重點,然后如圖所示,在各相鄰的筆劃中尋求與多重點(1002)近的二個切線圓(1004、1006、1008)。此二圓的選定基準是這樣的,除多重點外,使得由這樣的二切線圓描繪的曲線與原來的曲線應(yīng)充分近似(即,使誤差在預(yù)定誤差之外),而且將如此選定的近切圓的切點間連接成上述的二次曲線。即把圖10B的1010和1012間的曲線部分照此法描繪。但是,多重點上的切點在角上時,則尋求由二切點制作的二條半直線,用直線線段連接二條半直線匯合的點與各切點。即從1020起始的半直線與從1024起始的半直線的匯合點為1022,用直線線段連接1020和1022,并用同一方法用線段連接1022和1024。多重點經(jīng)此處理,移動后,該新的圓并非變成新的變形模樣的內(nèi)切圓,但可使經(jīng)此變形后的模樣的失真減至最小。
由此經(jīng)變形后的模樣的數(shù)據(jù)(圖5)來描繪變形后的曲線。與此相關(guān)的數(shù)據(jù)示于圖11。對圖11按圖3的數(shù)據(jù)中圓的順序賦以標號,變形后的模樣的圓,其順序也相同。圖12把變形后的模樣的線上點,按曲線的方向順次畫出來的,對于一個切線點的下一個點,利用本申請的算法便利書寫二次,其意義可以忽略。這種數(shù)據(jù)與線外點數(shù)據(jù)示于圖13。部分變換與輔助線的使用上述的字元變形及生成方式是使用仿射變換的一個例子。但實際上出于字元的美觀和視覺上的要求條件,用一種仿射變換,完全滿足多種要求,有很多難處。在本發(fā)明的基本方向和體現(xiàn)方式的范疇內(nèi),可以設(shè)想多種多樣變形的實施例。其中幾例如下。
1.對每個筆劃應(yīng)用其它仿射變換。
如圖1所示,“ス”的各部分,特別是標號108字體的設(shè)計者可以從美觀方向考慮而指定其傾斜度。但此時,仿射變換不限定于一種類型,對相當(dāng)于108的筆劃的其它部分,可以應(yīng)用其它的仿射變換。在此情況下,對表現(xiàn)于108筆劃與其它部分已分離成多重點,對多重點如上所述在變形中已被除外,故即使應(yīng)用其它仿射變換,在多重點處的切點的失真現(xiàn)象(distortion)也得以顯著地緩解。
2.輔助(曲)線的使用上述變換方式采取首先使中心軸向目的地移動,然后描繪角度θ,移動切點方式。但實際上,在此種情況下,因為中心軸曲線彎曲,故難于控制中心軸的移動。使此種最后變形的模樣在美觀和視覺上的質(zhì)量顯著下降。因此,在此情況下,可以采取設(shè)定用于控制移動的輔助線(一般有直線、半直線或線段),對中心軸和各點用與這種輔助線之間的關(guān)系進行連接的方式。為一般方法,指定由中心軸的點至輔助線的垂線的垂足的位置和長度。在下一個仿射變換中使輔助線向目的地移動,由垂線重足新的位置和距離信息計算中心軸新的變換后的點,然后使用如上的這些方法,決定切點。這樣一來,可以提高文字的美學(xué)、視覺上的質(zhì)量?;蛘撸€可使用特定的曲線來替代輔助線(輔助曲線),再有,雖然使用幾條輔助線可以控制得更精確,但可以說這些全部是本發(fā)明范疇內(nèi)的應(yīng)用例。一般化的算法與程序至此已列舉了本發(fā)明的一實施例。下邊將記述本發(fā)明的一般化的算法及流程圖。輔助線算法假定已給出了相應(yīng)的變換T,在這里,有時是將T設(shè)定為一般的非線性,有時是作為線性映射的仿射變換(Affine Transform)。在此作為一例,設(shè)該變換T按下述方式進行仿射變換。
TR2→R2Txy=Axy+b,]]>A=abcd]]>,b=Tef]]>如果P(X0,Y0)是二切線的點,就要決定與P相當(dāng)?shù)淖畲髢?nèi)切圓C的半徑r和C的二切點R1、R2,以i代表輔助線,但此處的i或者是直線或者是曲線。以l1、l2表示經(jīng)過各自的R1、R2且與C相切的直線,l1與l2的交點由Q表示。如果l1與l2設(shè)有交點,用Q表示經(jīng)過P且垂直于線段R1、R2的直線上的某一點(P除外),υ=PQ,由θ代表線段PR1與線段PQ所成的角度。
如果P(X0,Y0)是單切線的點,就可決定相當(dāng)P的最大內(nèi)切圓C的半徑r和切點Q,設(shè)定υ=PQ。
步驟1.設(shè)定P與i的關(guān)系。
比如說,i為直線的,設(shè)F為由P至i的垂線的垂足,儲存F與|PF|。
步驟2.將T適用i,求出變換后的輔助線T。此時根據(jù)步驟中的情況由F=T(F)決定F。
步驟3.根據(jù)P與步驟1中所設(shè)定的i的關(guān)系決定P被變換后的點P’。在步驟1中例子的情況下,設(shè)定P’=F’+|PF|W此時的W是由F向I的垂直方向的單位定量。
根據(jù)上述步驟1、2、3可設(shè)定決定由P向P’變化的變換M,此時的M或者是線性的,根據(jù)上述列舉的例子,也可以設(shè)定為作為一般的非線性映射。
步驟4.求出在P(X0,Y0)的M的Jacobi矩陣B。
此處,當(dāng)M為M(X,Y)=(u(X,Y),υ(X,Y))時,在P的Jacobi矩陣B按如下方式計算。B=∂u∂x(x0,y0)∂u∂y(x0,y0)∂v∂x(x0,y0)∂v∂y(x0,y0)]]>此處的點(X0,Y0)若是二切線的點,執(zhí)行下一步驟5,若是單切線的點執(zhí)行步驟5’。
步驟5.設(shè)υ’=Bυ,Q’=P’+υ’首先,把R1、R2變?yōu)樽儞Q后的點R1′、R2′把各線段P’R1′、P’R2′變?yōu)榕cP’Q’的角度,決定距P的距離為r的點。按如下方式?jīng)Q定Q’。θ′=arccos(|v|cosθ|Bv|)]]>步驟5’.設(shè)υ’=Bυ。由Q設(shè)定重新移動的點Q’Q′=P′+r-v′|v′|]]>下面,對二切線算法和單切線算法經(jīng)一般整理加以記述。二切線算法首先,若假定已給出該變換T,則此處的T一般設(shè)定為非線性的或線性映射的仿射變換。這里作為例子,所說的變換T假定是如下的仿射變換。
TR2→R2Txy=Axy+b,]]>A=abcd,]]>b=ef]]>另外,設(shè)定二切線點P,假定相當(dāng)于P的最大內(nèi)切圓C的半徑為r,C上的二切點為R1,R2。
首先,以l1、l2表示經(jīng)過R1、R2且與C相切的直線,以Q表示l1、l2的交點。若l1、l2沒有交點,則以Q表示經(jīng)過P且垂直于線段R1、R2的直線上的某一點(P除外)。然后以θ表示線段PR1與線段PQ所成的角。
步驟1.按如下方式求出二切線點P的移動點P’P’=T(P)步驟2.設(shè)υ=PQ,按下式?jīng)Q定θ’。θ′=arccos(|v|cosθ||Av|)]]>但是,其中的T為非線性時,A是按在輔助線算法中說明的那樣,變換T中P的Jacobi矩陣步驟3.設(shè)Q’=T(Q),R1、R2變?yōu)樽儞Q后的點R1′、R2′,各線段P’R1′、P’R2′與線段P’Q’的角度變?yōu)棣取?,決定距P’的距離為r的點。單切線算法首先,假定已設(shè)定相當(dāng)?shù)淖儞QT。其中的T一般設(shè)定為非線性或線性映射的仿射變換(Affine Transform)。這里作為例子,假定所說的變換T為按如下方式的變換。
TR2→R2Txy=Axy+b,]]>A=abcd]]>,b=ef]]>另外,設(shè)定單切線點P,假定設(shè)定相當(dāng)于P的最大內(nèi)切圓C的半徑r,C上的切點Q。設(shè)V=PQ步驟1.按下式?jīng)Q定P的移動點P’。
P=T(P)步驟2.設(shè)υ’=Aυ。但是,其中的T為非線性時,A是按輔助線算法中說明的那樣變換T中P的Jacobi矩陣。按下式?jīng)Q定切點Q的移動點Q’為自P’沿υ’方向的距離為r的點。Q′=P′+rv′|v′|]]>多重點算法首先,以Q表示設(shè)定的多重圓的一個切點。
步驟1.尋求曲線上距Q最近的連接的線上點P1、P2。此時,在曲線上關(guān)于曲線的設(shè)定方向,按P1、Q、P2順序?qū)⑷c連接,P1、P2各自成為所說的二切線圓的切點。以υ1、υ2代表各自在P1、P2上的曲線方向矢量。
步驟2.根據(jù)二切線算法,變換P1、P2、υ1、υ2,分別求出P1′、P2′、υ1′、υ2′。用l1代表自P1′起始的υ1′方向的半直線,以12代表自P2′引出的υ2′方向的半直線,以Q’表示l1、l2的交點。
步驟3.如果Q是角上一點,點P1′、P2′間用線段P1′Q’、Q’P2′連接,完成變換后的曲線。若Q不是角上一點,用以點Q’表示在線點的二次曲線連在點P1′、P2′之間,完成變換后的曲線。
字體數(shù)據(jù)為完美地實現(xiàn)本發(fā)明,其控制點的選定極為重要。
在線點最好全部是以中心軸點為中心的最大內(nèi)切圓的切點。如果變形之后,在線點同與其對應(yīng)的各同時在已設(shè)定半徑的圓上,則自然維持粗細,本發(fā)明的算法可以按照原來的設(shè)想加以實現(xiàn)。但是,按現(xiàn)在通常使用的方式,即使線上點未用上述形式給出來,也可選取以在線點為切點的最大內(nèi)切圓,這樣在變形后大體上仍維持字的組細,因此與往常的數(shù)據(jù)形式相比書寫出的字體更適用于本發(fā)明。
利用圓包絡(luò)線生成變形曲線的方法上面說明的變形方法往往采取計算與中心軸上的圓對應(yīng)的切點的方式。但是,隨情況下不同,由于切點切線方向的很小的誤差,有時曲線的模樣也有較大變化。一般可舉出不依賴于切點的控制方式的曲線變形方式,但本例卻要利用由中心軸上的各圖所生成的包絡(luò)線。
若以T代表設(shè)定的變換,中心軸的點P根據(jù)P’=T(P)公式向新生點P’移動?;蛘?,如前所述,也可以利用輔助線方式求出P’。
若根據(jù)這種方式求出全部二切線點的新生位置,這一點與計算從一多重點連至單切線點的中心軸的一分枝(branch)的移動相同。平面上的圓與圓中心具有相同的X、Y座標且由于其半徑與以Z座標為半徑的三次曲線相對應(yīng),故當(dāng)給以上所求得的分枝的移動追加上半徑信息就變?yōu)榕c三維上的曲線相對應(yīng)。在平面上對它再作解析,它就與平面上連續(xù)變化的圓的移動相對應(yīng)。若求出這些圓的集合的包絡(luò)線,就成為曲線,一般這樣的曲線總是與各個圓相切的二次曲線。
可把該曲線看做變形后的曲線。其中包絡(luò)線與計算它的方法在字體技術(shù)方面是眾所周知的。
光柵化與提示當(dāng)本發(fā)明在光柵化器以輪廓數(shù)據(jù)形成位映象(bit map)時,則易于維持筆劃的粗細的恒定。這是因為若決定最大內(nèi)切圓的中心位置為恒定(即水平、垂直的方框線的匯合點或象素中心點),由半徑相同的圓所制作的位標志圖形總是相同之緣故。即,通過以最大內(nèi)切圓中心一定的方式移動,則容易取得提示算法的效果。
在本發(fā)明的后組書寫體環(huán)境下的適用例下面描述在實施三次曲線為曲線字型的后組書寫體環(huán)境下的本發(fā)明的情況下的各改變部分。由本實施例未脫離上述本發(fā)明的范疇,所以只簡略地描述有時也改變的部分。三次曲線C(t)在二個在線點(onpoint)P0、P3之間有二個線外點(off point)P1、P2,所以t在0≤t≤1的范圍,C(t)用下式表示C(t)=P0(1-t)3+P13(1-t)2t+P23(1-t)t2+P3t3線外點是二個,這里只使用線上點,因此即使知道切點如何變形,僅根據(jù)切線信息也不能唯一地決定二切點間的二個線外點。因此,在原來的曲線上加選輔助點。即,若C(0)=P0、C(1)=P3、在原來的圓上再選取C(1/4)=Q1、C(1/2)=Q2、C(3/4)=Q3三點,尋求與此三點對應(yīng)的中心軸的點,若用上述方式移動,就把輔助點移向新生的點Q1′、Q2′、Q3′。而且若在線點P0和P3的移動位置各自為P0′和P3′,最好這樣選定線外點P1′、P2′,以便一方面維持切線信息,同時使在以P0′和P3′為始點和終點的三次曲線中同連接P0′→Q1′→Q2′→Q3′→P3′的線段重合(平方)誤差最小。其余的方式與二次曲線情況相同。
本發(fā)明在從包圍如上述所構(gòu)成設(shè)定的字元的邊框向裝入新生字元的邊框恢復(fù)所述字元的原有尺寸時,是一方面維持以筆劃粗細為基礎(chǔ)的模樣的重要形態(tài),同時使整體尺寸符合于任意設(shè)定的邊框來改變模樣的有用發(fā)明。
權(quán)利要求
1.一種把設(shè)定的字元變形為任意尺寸的字體書寫體變形方法,其特征在于該法包括求出上述設(shè)定的字元的中心軸的第1階段;利用上述中心軸和以該中心軸各點為中心的最大內(nèi)切圓求出切點的第2階段;以及將與上述中心軸各點和上述各切點有關(guān)信息適用于上述字元變形的第3階段。
2.權(quán)利要求1記載的字體書寫體談形方法,其特征在于,上述第3階段還包括首先進行變換并應(yīng)用相關(guān)的切點的信息,以使上述中心軸各點適當(dāng)?shù)靥钊肷鲜鋈我獬叽绲倪吙騼?nèi)的階段。
3.權(quán)利要求1記載的字體書寫體變形方法,其特征在于,在上述字元變形時,將不同的變換適用于上述設(shè)定的字元的各筆劃。
4.權(quán)利要求1記載的字體書寫體變形方法,其特征在于,當(dāng)上述相關(guān)各切點為多重圓的切點時,由選定下述階段進行處理,除該多重圓切點外,尋求與上述多重圓較近的各二切線(Prong)圓,使得由這樣的各二切線圓所描繪的曲線與原來的曲線十分近似。
5.一種按任意尺寸改變給定字元的字體書寫體變形方法,其特征在于,該方法包括求出上述設(shè)定字元中心軸的第1階段;根據(jù)美學(xué)的要求求出上述設(shè)定的字元的輔助線的第2階段;利用上述中心軸及以該中心軸各點為中心的最大內(nèi)切圓,求出切點的第3階段;以及在上述字元變形時適用上述輔助線、上述中心軸各點及上述切點的信息的第4階段。
6.權(quán)利要求5記載的字體書寫體變形方法,其特征在于,在上述第4階段中的上述字元變形時,上述輔助線、上述中心軸各點及上述切點的適用,首先改變先前的輔助線,由上述輔助線計算上述中心軸的新生的變換后的點,其后用決定切點的方法執(zhí)行。
7.權(quán)利要求5記載的字體書寫體變形方法,其特征在于,在上述字元變形時,對上述設(shè)定的字元的各筆劃適用不同的變換。
8.權(quán)利要求5記載的字體書寫體變形方法,其特征在于,當(dāng)上述相關(guān)各切點為多重圓的切點時,由選定的下述階段進行處理,除該多重圓切點外,尋求與上述多重圓較近的各二切線圓,以使由這樣的各二切線圓所描繪的曲線與原來的曲線充分近似。
9.一種按任意尺寸改變給定字元的字體書寫變形方法,其特征在于,該方法包括求出上述設(shè)定的字元中心軸變換的第1階段;移動上述中心軸變換的第2階段;以及從上述被移動的中心軸變換求出包絡(luò)線曲線的第3階段。
全文摘要
本發(fā)明涉及輪廓線字體,對諺文和漢字的字元和筆劃變形、生成特別有用。提出一種按任意尺寸改變設(shè)定的字元的字體書寫體變形的方法,包括求出設(shè)定的字元中心軸的階段;利用中心軸和以該軸各點為中心的最內(nèi)切圓求出切點的階段;以及將與中心軸各點和各切點有關(guān)的信息適用于上述字元變形的階段,從包圍設(shè)定的字元邊框向填入新字元的邊框恢復(fù)字之尺寸時,即維持以筆劃粗細為基礎(chǔ)的重要形態(tài)又使整體尺寸符合設(shè)定的邊框。
文檔編號G06T3/40GK1173673SQ9710376
公開日1998年2月18日 申請日期1997年4月2日 優(yōu)先權(quán)日1996年4月2日
發(fā)明者崔炯仁, 魏南淑, 樸敬煥, 李成鎮(zhèn), 崔誠祐, 文煥彪, 宋晟源, 白明珠, 金珍伶, 卓信海, 崔賢珠, 梁漢蘭, 金正漢 申請人:現(xiàn)代電子產(chǎn)業(yè)株式會社, 現(xiàn)代媒體系統(tǒng)株式會社, 崔炯仁