專利名稱:將cif格式多邊形切割成pg3600格式矩形的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及微光刻圖形數(shù)據(jù)格式轉(zhuǎn)換技術(shù)領(lǐng)域,尤其涉及一種將CIF 格式多邊形切割成PG3600格式矩形的方法。
背景技術(shù):
由于不同的曝光設(shè)備一般都是使用自己專用的圖形數(shù)據(jù)格式,所以必 須進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換處理。目前保留下來比較多的光學(xué)曝光系統(tǒng)仍然是 GCA 3600F圖形發(fā)生器(GCA3600F Pattern Generator)和GCA 3696分步 重復(fù)精縮機(jī)(GCA3696 Photo-Repeater),其使用的PG3600圖形數(shù)據(jù)格式 (PG3600 format)是以不同角度的矩形為基本單元來存儲數(shù)據(jù)的。CIF (Caltech Intermediate Form,加利福尼亞州理工學(xué)院中介格式)格 式是世界上光掩模制造業(yè)常用的數(shù)據(jù)交換格式之一,其以圓、多邊形、矩 形和有寬度的線段等四種圖形為基本圖形單元存儲數(shù)據(jù)。由于它是以文本 形式書寫,便于修改和編輯,所以在圖形數(shù)據(jù)處理和格式轉(zhuǎn)換過程中,常 用它作為中間格式。傳統(tǒng)的CIF格式多邊形切割成PG3600格式矩形的方 法是沿多邊形做矩形,遇到銳角會容易出現(xiàn)缺角圖形不完整的現(xiàn)象。為此,我們也采用從CIF到PG3600格式的數(shù)據(jù)轉(zhuǎn)換方式。首先,在 允許圖形少量重疊的情況下,將CIF格式中的各種圖形切割成PG3600所 需要的各種角度的矩形,然后再根據(jù)光學(xué)圖形發(fā)生器3600F計(jì)算機(jī)曝光控 制語言要求進(jìn)行代碼轉(zhuǎn)換。本發(fā)明的主要特征是把CIF格式中的凸凹多邊形在誤差允許的條件下 切割成PG3600格式中的矩形,使其切割出的任意多邊形圖形,尤其是處 理凹多邊形圖形的完整性好,同時切割出的矩形數(shù)據(jù)量比較少。發(fā)明內(nèi)容(一)要解決的技術(shù)問題有鑒于此,本發(fā)明的主要目的在于提供一種將CIF格式多邊形切割成PG3600格式矩形的方法,以解決任意多邊形切割容易出現(xiàn)圖形不完整現(xiàn) 象的問題,達(dá)到提高光掩模版曝光質(zhì)量的目的。(二)技術(shù)方案為達(dá)到上述目的,本發(fā)明提供了一種將CIF格式多邊形切割成PG3600 格式矩形的方法,該方法包括對于獨(dú)立的非直角三角形,作一個邊的高將其切割成兩個直角三角形;對于邊數(shù)大于或等于四的多邊形,過頂點(diǎn)及后續(xù)產(chǎn)生的新交點(diǎn)作水平 線段和垂直線段把多邊形切割為矩形或直角三角形;對于切割得到的直角三角形,以直角三角形斜邊為矩形的一邊作矩形 包圍該直角三角形;對于不能被包圍的直角三角形和獨(dú)立的直角三角形進(jìn)行細(xì)分切割。上述方案中,所述對于獨(dú)立的非直角三角形,作一個邊的高將其切割 成兩個直角三角形的步驟包括判斷所述三角形的形狀,如果是鈍角三角 形,則過鈍角頂點(diǎn)作對邊的高將其切割為兩個直角三角形;如果是銳角三 角形,則作任意邊的高將其切割為兩個直角三角形。上述方案中,所述對于邊數(shù)大于或等于四的多邊形,過頂點(diǎn)及后續(xù)產(chǎn) 生的新交點(diǎn)作水平線段和垂直線段把多邊形切割為矩形或直角三角形的 步驟包括A、 過多邊形的頂點(diǎn)向左和向右分別作射線與多邊形相交,如果射線 與多邊形不相交則不予理會,然后判斷頂點(diǎn)和交點(diǎn)之間的線段與多邊形的 位置,如果該線段在多邊內(nèi)部則保留該線段,否則,放棄該線段;B、 過多邊形的頂點(diǎn)和已作水平線段與多邊形的交點(diǎn)向上和向下分別 作射線,與多邊形或已作的水平線段相交且只相交一次,判斷該線段是否 在多邊形內(nèi)部,如果該線段在多邊內(nèi)部則保留該線段,否則,放棄該線段;C過新的垂直線段或水平線段與多邊形的交點(diǎn)重復(fù)執(zhí)行步驟A和步驟 B,將多邊形切割成矩形和直角三角形。上述方案中,所述判斷線段是否在多邊形內(nèi)部包括判斷線段的兩個端點(diǎn)是否都在多邊形內(nèi),如果都在多邊形內(nèi),則繼續(xù)執(zhí)行以下的判斷步驟; 否則,線段不在多邊形內(nèi)部;如果線段和多邊形的某條邊內(nèi)交,兩線段內(nèi) 交是指兩線段相交且交點(diǎn)不在兩線段的端點(diǎn),由于多邊形邊的左右兩側(cè)分 屬多邊形內(nèi)外不同部分,所以線段一定會有一部分在多邊形外,則繼續(xù)判 斷線段和多邊形的所有邊是否都不內(nèi)交,如果都在多邊形內(nèi),則繼續(xù)執(zhí)行 以下的判斷步驟;否則,線段不在多邊形內(nèi)部;線段和多邊形交于線段的 兩端點(diǎn)并不會影響線段是否在多邊形內(nèi),但是如果多邊形的某個頂點(diǎn)和線 段相交,還必須判斷兩相鄰交點(diǎn)之間的線段是否包含于多邊形內(nèi)部,如果 兩相鄰交點(diǎn)之間的線段包含于多邊形內(nèi)部,則線段在多邊形內(nèi)部;否則, 線段不在多邊形內(nèi)部。上述方案中,所述步驟C進(jìn)一步包括新作的垂直線段又與多邊形的 邊有新的交點(diǎn),過這些新交點(diǎn)再重復(fù)執(zhí)行步驟A和步驟B,先作水平線段 再作垂直線段直到與多邊形的邊沒有新的交點(diǎn)產(chǎn)生;如果過新交點(diǎn)作線段 又產(chǎn)生新交點(diǎn),且無止境下去,則說明這些垂線段都在一個鈍角三角形內(nèi), 則放棄這些垂線段,過該鈍角三角形的鈍角頂點(diǎn)作其高把該鈍角三角形分 為兩個直角三角形。上述方案中,所述對于切割得到的直角三角形,以直角三角形斜邊為 矩形的一邊作矩形包圍該直角三角形的步驟包括對于切割得到的直角三 角形,過直角三角形頂點(diǎn)以直角三角形斜邊為矩形的一邊作矩形包圍該直 角三角形;對于由鈍角三角形切割出的直角三角形,以其兩個直角邊為矩 形的兩邊作矩形包圍該直角三角形,再判斷該矩形是否在多邊形內(nèi)部,如 果該矩形不在多邊形內(nèi),則放棄這樣的矩形包圍。上述方案中,所述判斷矩形是否在多邊形內(nèi)包括判斷矩形是否在多邊形內(nèi),首先判斷矩形的每一條邊是否在多邊形內(nèi),如果矩形的邊都在矩 形內(nèi)或者與多邊形的邊重合,則該矩形在多邊形內(nèi)部。上述方案中,所述對于不能被包圍的直角三角形和獨(dú)立的直角三角形進(jìn)行細(xì)分切割的步驟包括對于不能直接用矩形包圍的直角三角形,將其 細(xì)分切割成小矩形,首先作一條線段平行于斜邊使其與斜邊的距離在誤差 允許范圍內(nèi),然后以該線段為矩形的一邊作矩形窄條;再作兩個直角邊的 平行線產(chǎn)生矩形;然后重復(fù)該作法,每次利用重疊來加寬矩形的寬度,最后用矩形塊包圍剩下的最中心的三角形。(三)有益效果 從上述技術(shù)方案可以看出,本發(fā)明具有以下有益效果1、 利用本發(fā)明,由于采用混合拼接方法,所以切割方法很簡單,容 易編程實(shí)現(xiàn)。2、 利用本發(fā)明,由于采用孤立銳角直接三角形特殊處理技術(shù),所以 切割后的圖形與原圖形完整性好。3、 利用本發(fā)明,由于采用矩形合并技術(shù),所以切割出的矩形數(shù)據(jù)量
圖1為本發(fā)明提供的將CIF格式多邊形切割成PG3600格式矩形的方 法流程圖;圖2為本發(fā)明提供的切割多邊形為矩形和直角三角形的示意圖;圖3為本發(fā)明提供的用矩形包圍切割出的直角三角形的示意圖;圖4為本發(fā)明提供的與多邊形相交的兩條線段的示意圖;圖5為本發(fā)明提供的細(xì)分切割直角三角形的示意圖;圖6為依照本發(fā)明實(shí)施例過多邊形的頂點(diǎn)作水平線段的示意圖;圖7為依照本發(fā)明實(shí)施例過多邊形的頂點(diǎn)和水平線段與多邊形的交點(diǎn)作垂直線段的示意圖;圖8為依照本發(fā)明實(shí)施例過新的垂直線段或水平線段與多邊形的交點(diǎn)重復(fù)作水平線段和垂直線段的示意圖;圖9為依照本發(fā)明實(shí)施例用矩形包圍切割出的直角三角形的示意圖; 圖10為依照本發(fā)明實(shí)施例對于不能被包圍的直角三角形和獨(dú)立的直角三角形進(jìn)行細(xì)分切割的示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí) 施例,并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。如圖1所示,圖1為本發(fā)明提供的將CIF格式多邊形切割成PG3600 格式矩形的方法流程圖,該方法包括以下步驟步驟101:對于獨(dú)立的非直角三角形,作一個邊的高將其切割成兩個直角三角形;步驟102:對于邊數(shù)大于或等于四的多邊形,過頂點(diǎn)及后續(xù)產(chǎn)生的新 交點(diǎn)作水平線段和垂直線段把多邊形切割為矩形或直角三角形;步驟103:對于切割得到的直角三角形,以直角三角形斜邊為矩形的一邊作矩形包圍該直角三角形;步驟104:對于不能被包圍的直角三角形和獨(dú)立的直角三角形進(jìn)行細(xì)分切割。上述步驟101中所述對于獨(dú)立的非直角三角形,作一個邊的高將其切割成兩個直角三角形的步驟包括判斷所述三角形的形狀,如果是鈍角三 角形,則過鈍角頂點(diǎn)作對邊的高將其切割為兩個直角三角形;如果是銳角三角形,則作任意邊的高將其切割為兩個直角三角形。在本步驟中,對于獨(dú)立的非直角三角形,作一個邊的高把其切割成兩個直角三角形。首先判斷該三角形的形狀,如果是直角三角形就用步驟104 中的方法切割;如果是鈍角三角形就過其鈍角頂點(diǎn)作對邊的高把其切割為 兩個直角三角形,然后再用步驟104中的方法切割;如果是銳角三角形以 任意作邊的高把其切割為兩個直角三角形,然后再用步驟104中的方法切 割。上述步驟102中所述對于邊數(shù)大于或等于四的多邊形,過頂點(diǎn)及后續(xù) 產(chǎn)生的新交點(diǎn)作水平線段和垂直線段把多邊形切割為矩形或直角三角形 的步驟包括A、 過多邊形的頂點(diǎn)向左和向右分別作射線與多邊形相交,如果射線 與多邊形不相交則不予理會(如圖2中點(diǎn)A左側(cè)射線),然后判斷頂點(diǎn)和 交點(diǎn)之間的線段與多邊形的位置(判斷方法如下文所述),如果該線段在 多邊內(nèi)部則保留該線段,否則,放棄該線段(如圖2中AB線段則放棄);B、 過多邊形的頂點(diǎn)(如圖2中的點(diǎn)F)和已作水平線段與多邊形的 交點(diǎn)(如圖2中的點(diǎn)D)向上和向下分別作射線,與多邊形或已作的水平線段相交且只相交一次,判斷該線段是否在多邊形內(nèi)部(判斷方法如下文 所述),如果該線段在多邊內(nèi)部則保留該線段,否則,放棄該線段;C過新的垂直線段或水平線段與多邊形的交點(diǎn)重復(fù)執(zhí)行步驟A和步驟 B,將多邊形切割成矩形和直角三角形。上述判斷線段是否在多邊形內(nèi)部包括判斷線段的兩個端點(diǎn)是否都在 多邊形內(nèi),如果都在多邊形內(nèi),則繼續(xù)執(zhí)行以下的判斷步驟;否則,線段 不在多邊形內(nèi)部;如果線段和多邊形的某條邊內(nèi)交,兩線段內(nèi)交是指兩線 段相交且交點(diǎn)不在兩線段的端點(diǎn),由于多邊形邊的左右兩側(cè)分屬多邊形內(nèi) 外不同部分,所以線段一定會有一部分在多邊形外,則繼續(xù)判斷線段和多 邊形的所有邊是否都不內(nèi)交,如果都在多邊形內(nèi),則繼續(xù)執(zhí)行以下的判斷 步驟;否則,線段不在多邊形內(nèi)部;線段和多邊形交于線段的兩端點(diǎn)并不 會影響線段是否在多邊形內(nèi),但是如果多邊形的某個頂點(diǎn)和線段相交,還 必須判斷兩相鄰交點(diǎn)之間的線段是否包含于多邊形內(nèi)部,如果兩相鄰交點(diǎn) 之間的線段包含于多邊形內(nèi)部,則線段在多邊形內(nèi)部;否則,線段不在多 邊形內(nèi)部。上述步驟C進(jìn)一步包括新作的垂直線段又與多邊形的邊有新的交點(diǎn) (如圖2中的點(diǎn)H),過這些新交點(diǎn)再重復(fù)執(zhí)行步驟A和步驟B,先作水 平線段再作垂直線段直到與多邊形的邊沒有新的交點(diǎn)產(chǎn)生;如果過新交點(diǎn) 作線段又產(chǎn)生新交點(diǎn),且無止境下去,則說明這些垂線段都在一個鈍角三 角形內(nèi),則放棄這些垂線段,過該鈍角三角形的鈍角頂點(diǎn)作其高把該鈍角 三角形分為兩個直角三角形(如圖2中的三角形EFG,過點(diǎn)F作高FM把 其分為兩個直角三角形)。這樣就把多邊形切割成了矩形和直角三角形, 切割出的矩形可以直接轉(zhuǎn)換成圖形發(fā)生器曝光用的矩形數(shù)據(jù),而切割出的 直角三角形用步驟103中的方法處理。上述步驟103中,所述對于切割得到的直角三角形,以直角三角形斜 邊為矩形的一邊作矩形包圍該直角三角形的步驟包括對于切割得到的直 角三角形,過直角三角形頂點(diǎn)以直角三角形斜邊為矩形的一邊作矩形包圍 該直角三角形;對于由鈍角三角形切割出的直角三角形,以其兩個直角邊 為矩形的兩邊作矩形包圍該直角三角形,再判斷該矩形是否在多邊形內(nèi)部,如果該矩形不在多邊形內(nèi),則放棄這樣的矩形包圍。如圖3所示,圖3為本發(fā)明提供的用矩形包圍切割出的直角三角形的示意圖。對于已切割出的直角三角形而言(除了鈍角三角形由其高切割 的),其斜邊一定是多邊形的一部分,過這些直角三角形頂點(diǎn)以直角三角 形斜邊為矩形的一邊作矩形包圍該直角三角形。對于由鈍角三角形切割出 的直角三角形,因?yàn)槠湟粋€直角邊一定是多邊形的一部分,以其兩個直角 邊為矩形的兩邊作矩形包圍該直角三角形。再判斷該矩形是否在多邊形內(nèi) 部,如果該矩形不在多邊形內(nèi)(判斷方法如下文所述)則放棄這樣的矩形包圍,如直角三角形RST就不能被一個矩形來包圍。對于這些不能被所作 的矩形保衛(wèi)的直角三角形需要用步驟104的方法處理。上述判斷矩形是否在多邊形內(nèi)包括判斷矩形是否在多邊形內(nèi),首先判斷矩形的每一條邊是否在多邊形內(nèi),如果矩形的邊都在矩形內(nèi)或者與多 邊形的邊重合,則該矩形在多邊形內(nèi)部。上述判斷線段、矩形是否在多邊形內(nèi),判斷所作矩形是否在多邊形內(nèi) 首先判斷矩形的每一條邊是否在多邊形內(nèi),也就是判斷線段是否在多變形 內(nèi),如果矩形的邊都在矩形內(nèi)或者與多邊形的邊重合則該矩形在多邊形內(nèi) 部。因該都?xì)w結(jié)為判斷線段是否在多邊形內(nèi)部的問題。線段在多邊形內(nèi)的一個必要條件是線段的兩個端點(diǎn)都在多邊形內(nèi),但 由于多邊形可能為凹多邊形,所以這不能成為判斷的充分條件。如果線段 和多邊形的某條邊內(nèi)交(兩線段內(nèi)交是指兩線段相交且交點(diǎn)不在兩線段的 端點(diǎn)),因?yàn)槎噙呅蔚倪叺淖笥覂蓚?cè)分屬多邊形內(nèi)外不同部分,所以線段一定會有一部分在多邊形外(如圖4中b線段)。于是我們得到線段在多邊形內(nèi)的第二個必要條件線段和多邊形的所有邊都不內(nèi)交。線段和多邊形交于線段的兩端點(diǎn)并不會影響線段是否在多邊形內(nèi);但是如果多邊形的 某個頂點(diǎn)和線段相交,還必須判斷兩相鄰交點(diǎn)之間的線段是否包含于多邊 形內(nèi)部(如圖4中a線段)。上述步驟104中,所述對于不能被包圍的直角三角形和獨(dú)立的直角三 角形進(jìn)行細(xì)分切割的步驟包括對于不能直接用矩形包圍的直角三角形,將其細(xì)分切割成小矩形,首先作一條線段平行于斜邊使其與斜邊的距離在 誤差允許范圍內(nèi),然后以該線段為矩形的一邊作矩形窄條;再作兩個直角邊的平行線產(chǎn)生矩形;然后重復(fù)該作法,每次利用重疊來加寬矩形的寬度,最后用矩形塊包圍剩下的最中心的三角形。在本步驟中,對于那些不能直接用矩形包圍的直角三角形或可以采用圖5所示的切割方法,將其細(xì)分切割成小矩形。如圖5所示要切割直角 三角形ABC,首先作一條線段DE平行于斜邊使其與斜邊的距離在誤差允 許范圍內(nèi),然后DE為矩形的一邊作矩形窄條。,然后找到該矩形與兩個直 角邊的交點(diǎn)并通過其交點(diǎn)作垂直線與斜邊相交,找到I點(diǎn)和M點(diǎn),再以 EI為邊作矩形FBEG,同樣以DM為邊作矩形DFNM。然后重復(fù)上面的作 法,每次做矩形都可以利用重疊來加寬矩形的寬度,最后用矩形塊RPTS 包圍最中間的三角形。下面以實(shí)際的多邊形為例說明本發(fā)明的詳細(xì)切割方法。 步驟1過多邊形的頂點(diǎn)作水平線段;過多邊形的頂點(diǎn)向左和向右作射線與多邊形相交(只交一次),舍去 與多邊形沒有交點(diǎn)的射線和不在多邊內(nèi)部的線段(如圖6所示)。步驟2過多邊形的頂點(diǎn)和水平線段與多邊形的交點(diǎn)作垂直線段;過多邊形的頂點(diǎn)和已作的水平線段的交點(diǎn)向上和向下作射線與多邊 形或已作出的水平線段相交(只交一次),舍去與多邊形沒有交點(diǎn)的射線 和不在多邊內(nèi)部的線段(如圖7所示)。步驟3過新的垂直線段或水平線段與多邊形的交點(diǎn)重復(fù)步驟1和步驟 2的作法;新作的垂直線段又和多邊形的邊有新的交點(diǎn)(如圖8中的點(diǎn)J和R), 過這些新交點(diǎn)再重復(fù)步驟1和步驟2的作法先作水平線段再作垂直線段直 到與多邊形的邊沒有新的交點(diǎn)產(chǎn)生。過新交點(diǎn)作線段又產(chǎn)生新交點(diǎn),且無止境下去,那么說明這些垂線段 都在一個鈍角三角形內(nèi)(如圖8中的點(diǎn)S和N),則放棄這些垂線段(如 圖8中的點(diǎn)SF、 SM和NM)。那么過這個鈍角三角形的鈍角頂點(diǎn)作其高 把其分為兩個直角三角形(如圖8中的高FL把鈍角三角形分為兩個直角三角形)。步驟4用矩形包圍切割出的直角三角形;對于已切割出的直角三角形而言(除了鈍角三角形由其高切割的), 其斜邊一定是多邊形的一部分,過這些直角三角形頂點(diǎn)以直角三角形斜邊 為矩形的一邊作矩形包圍該直角三角形(如圖9中的直角三角形RST和FGN)。對于由鈍角三角形切割出的直角三角形,因?yàn)槠湟粋€直角邊一定 是多邊形的一部分,以其兩個直角邊為矩形的兩邊作矩形包圍該直角三角 形(如圖9中的直角三角形DFC被矩形DQFC包圍)。檢驗(yàn)這些包圍直角 三角形的矩形是否在多邊形內(nèi)部,對于包圍它的矩形不在多邊形內(nèi)部的直 角三角形(如圖9中的包圍直角三角形RST的矩形)用步驟5來處理。 步驟5對于不能被包圍的直角三角形和獨(dú)立的直角三角形進(jìn)行細(xì)分切割;對于那些不能直接用矩形包圍的直角三角形(如圖9中的直角三角形 RST)或獨(dú)立的直角三角形可以采用圖IO所示的切割方法,將其細(xì)分切割 成小矩形。如圖IO所示要切割直角三角形ABC,首先作一條線段DE平 行于斜邊使其與斜邊的距離在誤差允許范圍內(nèi),然后DE為矩形的一邊作 矩形DEHX。然后過D點(diǎn)和E點(diǎn)作垂直線與斜邊相交,交點(diǎn)為M點(diǎn)和F 點(diǎn)。再以EF為邊作矩形EFGA,同樣以DM為邊作矩形DMQG。然后重 復(fù)上面的作法,每次做矩形都可以利用重疊來加寬矩形的寬度,最后用矩 形塊WTUV包圍最中間的三角形。以上所述的具體實(shí)施例,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行 了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而 已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種將CIF格式多邊形切割成PG3600格式矩形的方法,其特征在于,該方法包括對于獨(dú)立的非直角三角形,作一個邊的高將其切割成兩個直角三角形;對于邊數(shù)大于或等于四的多邊形,過頂點(diǎn)及后續(xù)產(chǎn)生的新交點(diǎn)作水平線段和垂直線段把多邊形切割為矩形或直角三角形;對于切割得到的直角三角形,以直角三角形斜邊為矩形的一邊作矩形包圍該直角三角形;對于不能被包圍的直角三角形和獨(dú)立的直角三角形進(jìn)行細(xì)分切割。
2、 根據(jù)權(quán)利要求1所述的將CIF格式多邊形切割成PG3600格式矩形 的方法,其特征在于,所述對于獨(dú)立的非直角三角形,作一個邊的高將其 切割成兩個直角三角形的步驟包括判斷所述三角形的形狀,如果是鈍角三角形,則過鈍角頂點(diǎn)作對邊的 高將其切割為兩個直角三角形;如果是銳角三角形,則作任意邊的高將其 切割為兩個直角三角形。
3、 根據(jù)權(quán)利要求1所述的將CIF格式多邊形切割成PG3600格式矩形 的方法,其特征在于,所述對于邊數(shù)大于或等于四的多邊形,過頂點(diǎn)及后 續(xù)產(chǎn)生的新交點(diǎn)作水平線段和垂直線段把多邊形切割為矩形或直角三角 形的步驟包括A、 過多邊形的頂點(diǎn)向左和向右分別作射線與多邊形相交,如果射線 與多邊形不相交則不予理會,然后判斷頂點(diǎn)和交點(diǎn)之間的線段與多邊形的 位置,如果該線段在多邊內(nèi)部則保留該線段,否則,放棄該線段;B、 過多邊形的頂點(diǎn)和已作水平線段與多邊形的交點(diǎn)向上和向下分別 作射線,與多邊形或已作的水平線段相交且只相交一次,判斷該線段是否 在多邊形內(nèi)部,如果該線段在多邊內(nèi)部則保留該線段,否則,放棄該線段;C過新的垂直線段或水平線段與多邊形的交點(diǎn)重復(fù)執(zhí)行步驟A和步驟 B,將多邊形切割成矩形和直角三角形。
4、 根據(jù)權(quán)利要求3所述的將CIF格式多邊形切割成PG3600格式矩形的方法,其特征在于,所述判斷線段是否在多邊形內(nèi)部包括-判斷線段的兩個端點(diǎn)是否都在多邊形內(nèi),如果都在多邊形內(nèi),則繼續(xù)執(zhí)行以下的判斷步驟;否則,線段不在多邊形內(nèi)部;如果線段和多邊形的某條邊內(nèi)交,兩線段內(nèi)交是指兩線段相交且交點(diǎn) 不在兩線段的端點(diǎn),由于多邊形邊的左右兩側(cè)分屬多邊形內(nèi)外不同部分, 所以線段一定會有一部分在多邊形外,則繼續(xù)判斷線段和多邊形的所有邊 是否都不內(nèi)交,如果都在多邊形內(nèi),則繼續(xù)執(zhí)行以下的判斷步驟;否則, 線段不在多邊形內(nèi)部;線段和多邊形交于線段的兩端點(diǎn)并不會影響線段是否在多邊形內(nèi),但 是如果多邊形的某個頂點(diǎn)和線段相交,還必須判斷兩相鄰交點(diǎn)之間的線段 是否包含于多邊形內(nèi)部,如果兩相鄰交點(diǎn)之間的線段包含于多邊形內(nèi)部, 則線段在多邊形內(nèi)部;否則,線段不在多邊形內(nèi)部。
5、 根據(jù)權(quán)利要求3所述的將CIF格式多邊形切割成PG3600格式矩形 的方法,其特征在于,所述步驟C進(jìn)一步包括新作的垂直線段又與多邊形的邊有新的交點(diǎn),過這些新交點(diǎn)再重復(fù)執(zhí) 行步驟A和步驟B,先作水平線段再作垂直線段直到與多邊形的邊沒有新 的交點(diǎn)產(chǎn)生;如果過新交點(diǎn)作線段又產(chǎn)生新交點(diǎn),且無止境下去,則說明這些垂線 段都在一個鈍角三角形內(nèi),則放棄這些垂線段,過該鈍角三角形的鈍角頂 點(diǎn)作其高把該鈍角三角形分為兩個直角三角形。
6、 根據(jù)權(quán)利要求1所述的將CIF格式多邊形切割成PG3600格式矩形 的方法,其特征在于,所述對于切割得到的直角三角形,以直角三角形斜 邊為矩形的一邊作矩形包圍該直角三角形的步驟包括對于切割得到的直角三角形,過直角三角形頂點(diǎn)以直角三角形斜邊為 矩形的一邊作矩形包圍該直角三角形;對于由鈍角三角形切割出的直角三角形,以其兩個直角邊為矩形的兩 邊作矩形包圍該直角三角形,再判斷該矩形是否在多邊形內(nèi)部,如果該矩 形不在多邊形內(nèi),則放棄這樣的矩形包圍。
7、 根據(jù)權(quán)利要求6所述的將CIF格式多邊形切割成PG3600格式矩形 的方法,其特征在于,所述判斷矩形是否在多邊形內(nèi)包括判斷矩形是否在多邊形內(nèi),首先判斷矩形的每一條邊是否在多邊形 內(nèi),如果矩形的邊都在矩形內(nèi)或者與多邊形的邊重合,則該矩形在多邊形 內(nèi)部。
8、根據(jù)權(quán)利要求1所述的將CIF格式多邊形切割成PG3600格式矩形 的方法,其特征在于,所述對于不能被包圍的直角三角形和獨(dú)立的直角三 角形進(jìn)行細(xì)分切割的步驟包括對于不能直接用矩形包圍的直角三角形,將其細(xì)分切割成小矩形,首 先作一條線段平行于斜邊使其與斜邊的距離在誤差允許范圍內(nèi),然后以該 線段為矩形的一邊作矩形窄條;再作兩個直角邊的平行線產(chǎn)生矩形;然后 重復(fù)該作法,每次利用重疊來加寬矩形的寬度,最后用矩形塊包圍剩下的 最中心的三角形。
全文摘要
本發(fā)明涉及微光刻圖形數(shù)據(jù)格式轉(zhuǎn)換技術(shù)領(lǐng)域,公開了一種將CIF格式多邊形切割成PG3600格式矩形的方法,該方法包括對于獨(dú)立的非直角三角形,作一個邊的高將其切割成兩個直角三角形;對于邊數(shù)大于或等于四的多邊形,過頂點(diǎn)及后續(xù)產(chǎn)生的新交點(diǎn)作水平線段和垂直線段把多邊形切割為矩形或直角三角形;對于切割得到的直角三角形,以直角三角形斜邊為矩形的一邊作矩形包圍該直角三角形;對于不能被包圍的直角三角形和獨(dú)立的直角三角形進(jìn)行細(xì)分切割。利用本發(fā)明,切割方法很簡單,容易編程實(shí)現(xiàn),切割后的圖形與原圖形的誤差很小,切割出的矩形數(shù)據(jù)量少。
文檔編號G06F19/00GK101334811SQ200710118000
公開日2008年12月31日 申請日期2007年6月27日 優(yōu)先權(quán)日2007年6月27日
發(fā)明者明 劉, 李金儒, 琴 王, 珉 趙, 陳寶欽 申請人:中國科學(xué)院微電子研究所