線切割機實現(xiàn)切割漢字的自動編程技術(shù)
、FirstPointY記錄第一點橫、縱坐標(biāo)的值; (2)初始化記錄直線的指針,建立記錄直線的鏈表;將起始點的k,1值作為直線起點和終點的橫、縱坐標(biāo),將該直線加入到直線紀(jì)錄的鏈表中去; (3)以第一點為基準(zhǔn)點沿逆時針方向?qū)ふ蚁乱稽c,如果搜索到值為1的點則記搜索方向為i,該點的橫、縱坐標(biāo)記為(k,1),將記錄直線的終點橫、縱坐標(biāo)設(shè)置為k,1; (4)置是否搜索完畢標(biāo)志SearchCompleted為False; (5)如果SearchCompleted不為True則重復(fù)作6-13步; (6)置SearchCompleted為True; (7)置是否同一條線標(biāo)志SameLine為True; (8)如果SameLine為True則重復(fù)作9-12步; (9)置SameLine為False; (10)沿i方向進行搜索,即k:=k+SearchDirection [i][0];1:=1+SearchDirection [i][1]; (11)如果點(k,1)為1,則置SameLine為True;將直線的終點坐標(biāo)設(shè)置為(k,1);將點(k,1)的值設(shè)置為0; (12)如果點(k,1)為0,則置SameLine為False; (13)以點(k,1)為基準(zhǔn)點沿逆時針方向?qū)ふ蚁乱稽c,如果搜索到值為1的點,則記搜索方向為i;在直線記錄列表中增加一條新的直線,k,1值作為直線起點的橫、縱坐標(biāo);將搜索到的點的橫、縱坐標(biāo)記為(k,1),將直線終點的橫、縱坐標(biāo)設(shè)置為(k,1);置Searhcompleted為False,置SameLine為True;將點(k,1)的值設(shè)置為0; (14)進行圖形封閉化處理,在直線記錄列表中增加一條直線,將k,1值作為直線起點的橫、縱坐標(biāo),F(xiàn)irstPointX、FirstPointY作為直線終點的橫、縱坐標(biāo)值。 這樣當(dāng)遍歷完成后,遍歷的軌跡就保存在直線記錄列表中了,也就是說已實現(xiàn)將漢字的字形輪廓用直線段進行描述了。需指出的是,由于漢字字形本身或者編輯處理的原因,在進行圖象遍歷的過程中,可能存在一些不和諧的點,使遍歷不能完成(如存在斷點、尖點及多余點的情況),需在遍歷之前運用圖象處理的技術(shù)將這些點補足或者剔除掉,以使遍歷能順利完成,有關(guān)這方面的算法不再贅述。 至此要實現(xiàn)切割漢字就只剩下如何生成切割指令的問題了。由于已將漢字的字形輪廓用直線進行描述,且這些直線還首尾相接組成一個封閉輪廓,要生成線切割機的切割指令,只需按切割指令的要求將這些直線進行轉(zhuǎn)換即可。 5 結(jié)束語 本文介紹了從漢字字庫中提取字形輪廓,在進行編輯處理后將其轉(zhuǎn)化為切割指令,從而在線切割機上實現(xiàn)切割漢字的自動編程技術(shù)。它可使線切割機簡單方便地實現(xiàn)漢字的切割,還可對要切割的漢字進行各種處理。實踐證明,采用這種方法能很好地滿足需要,并且取得較好的效果。 |