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