維圖形的任意兩個凸多邊形之間的最短距離,找出其中距離最小值作為所述兩個二維圖形的最短距離;具體過程參照上述實施所述,不做贅述。[0131 ]比對單元,用于判斷所述最短距離是否小于設定限定值,若是,確定為所述兩個三維STL模型存在碰撞。所述限定值可根據實際情況設定。
[0132]根據在上述任一示例的三維模型的碰撞檢測系統實施例,可將三維模型的碰撞檢測轉換為二維圖形的碰撞檢測,有利于提高三維模型的碰撞檢測精度,算法復雜度低,檢測效率高。
[0133]需要說明的是,上述實施例中各模塊/單元之間的信息交互、執行過程等內容,由于與本發明前述方法實施例基于同一構思,其帶來的技術效果與本發明前述方法實施例相同,具體內容可參見本發明方法實施例中的敘述,此處不再贅述。
[0134]此外,上述實施例三或實施例四示例的三維模型的碰撞檢測系統中,各功能模塊的邏輯劃分僅是舉例說明,實際應用中可以根據需要,例如出于相應硬件的配置要求或者軟件的實現的便利考慮,將上述功能分配由不同的功能模塊完成,即將所述三維模型的碰撞檢測系統的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。
[0135]在上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其它實施例的相關描述。
[0136]另外,在本發明前述各個實施例中的各功能模塊可以集成在一個處理模塊中,也可以是各個模塊單獨物理存在,也可以兩個或兩個以上模塊集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現,也可以采用軟件功能模塊的形式實現。
[0137]所述集成的模塊如果以軟件功能模塊的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。本領域普通技術人員可以理解本發明的任意實施例指定的方法的全部或部分步驟是可以通過程序來指令相關的硬件(個人計算機、服務器、或者網絡設備等)來完成。該程序可以存儲于一計算機可讀存儲介質中。該程序在執行時,可執行上述任意實施例指定的方法的全部或部分步驟。前述存儲介質可以包括任何可以存儲程序代碼的介質,例如只讀存儲器(Read-Only Memory,ROM)、隨機存取器(Random Access Memory,RAM)、磁盤或光盤等。
[0138]以上為對本發明所提供的三維模型的碰撞檢測方法及系統的描述,對于本領域的一般技術人員,依據本發明實施例的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上,本說明書內容不應理解為對本發明的限制。
【主權項】
1.三維模型的碰撞檢測方法,其特征在于,包括: 將待檢測的兩個三維STL模型在XOY平面進行投影,得到對應的兩個二維圖形; 判斷所述兩個二維圖形是否相交或者為包含關系,若相交或者為包含關系,確定為所述兩個三維STL模型存在碰撞。2.如權利要求1所述三維模型的碰撞檢測方法,其特征在于,所述判斷所述兩個二維圖形是否相交或者為包含關系之后,還包括, 若所述兩個二維圖形不相交且不為包含關系,計算所述兩個二維圖形的最短距離;若所述最短距離小于設定限定值,確定為所述兩個三維STL模型存在碰撞。3.如權利要求2所述三維模型的碰撞檢測方法,其特征在于,計算所述兩個二維圖形的最短距離,包括, 識別所述兩個二維圖形是否均為凸多邊形,若是,通過旋轉卡殼算法得出所述兩個二維圖形的最短距離; 若否,將其中為凹多邊形的二維圖形分解為若干凸多邊形; 通過旋轉卡殼算法計算分別屬于所述兩個二維圖形的任意兩個凸多邊形之間的最短距離,找出其中距離最小值作為所述兩個二維圖形的最短距離。4.如權利要求1所述三維模型的碰撞檢測方法,其特征在于,判斷所述兩個二維圖形是否相交或者為包含關系,若是,確定為所述兩個三維STL模型存在碰撞,包括, 判斷所述兩個二維圖形是否相交,若是,確定為所述兩個三維STL模型存在碰撞; 若否,判斷所述兩個二維圖形是否為包含關系,若是,確定為所述兩個三維STL模型存在碰撞。5.如權利要求4所述三維模型的碰撞檢測方法,其特征在于,判斷所述兩個二維圖形是否相交,包括, 分別識別構成所述兩個二維圖形的全部邊; 判斷其中一個二維圖形的各邊是否與另一個二維圖形的任意邊均不相交; 若是,確定為所述兩個二維圖形不相交,否則,確定為所述兩個二維圖形相交; 所述判斷所述兩個二維圖形是否為包含關系,包括, 判斷其中一個二維圖形的任一頂點是否在另一個二維圖形內,若是,所述兩個二維圖形為包含關系。6.如權利要求5所述三維模型的碰撞檢測方法,其特征在于,判斷其中一個二維圖形的各邊是否與另一個二維圖形的任意邊均不相交,包括, 構建與其中一個二維圖形的第一邊對應的第一矩形,構建與另一個二維圖形的第二邊對應的第二矩形,所述第一邊為所述第一矩形的對角線,所述第二邊為所述第二矩形的對角線; 判斷所述第一矩形與所述第二矩形是否相交,若不相交,確定為所述第一邊與所述第二邊不相交; 若所述第一矩形與所述第二矩形相交,則判斷所述第一邊與所述第二邊是否相互跨立,若是,確定為所述第一邊與所述第二邊不相交。7.三維模型的碰撞檢測系統,其特征在于,包括: 投影模塊,用于將待檢測的兩個三維STL模型在XOY平面進行投影,得到對應的兩個二維圖形; 第一檢測模塊,用于判斷所述兩個二維圖形是否相交或者為包含關系,若相交或者為包含關系,確定為所述兩個三維STL模型存在碰撞。8.如權利要求7所述三維模型的碰撞檢測系統,其特征在于,還包括: 第二檢測模塊,用于若所述兩個二維圖形不相交且不為包含關系,計算所述兩個二維圖形的最短距離;若所述最短距離小于設定限定值,確定為所述兩個三維STL模型存在碰撞。9.如權利要求8所述三維模型的碰撞檢測系統,其特征在于,計算所述兩個二維圖形的最短距離,包括, 識別所述兩個二維圖形是否均為凸多邊形,若是,通過旋轉卡殼算法得出所述兩個二維圖形的最短距離; 若否,將其中為凹多邊形的二維圖形分解為若干凸多邊形; 通過旋轉卡殼算法計算分別屬于所述兩個二維圖形的任意兩個凸多邊形之間的最短距離,找出其中距離最小值作為所述兩個二維圖形的最短距離。10.如權利要求7所述三維模型的碰撞檢測系統,其特征在于,所述第一檢測模塊包括, 相交檢測單元,用于判斷所述兩個二維圖形是否相交,若是,確定為所述兩個三維STL模型存在碰撞; 包含檢測單元,用于若所述兩個二維圖形不相交,判斷所述兩個二維圖形是否為包含關系,若是,確定為所述兩個三維STL模型存在碰撞; 其中,判斷所述兩個二維圖形是否相交,包括, 分別識別構成所述兩個二維圖形的全部邊; 判斷其中一個二維圖形的各邊是否與另一個二維圖形的任意邊均不相交; 若是,確定為所述兩個二維圖形不相交,若否,確定為所述兩個二維圖形相交; 所述判斷所述兩個二維圖形是否為包含關系,包括, 判斷其中一個二維圖形的任一頂點是否在另一個二維圖形內,若是,所述兩個二維圖形為包含關系。
【專利摘要】本發明涉及一種三維模型的碰撞檢測方法和系統。所述方法包括:將待檢測的兩個三維STL模型在XOY平面進行投影,得到對應的兩個二維圖形;判斷所述兩個二維圖形是否相交或者為包含關系,若相交或者為包含關系,確定為所述兩個三維STL模型存在碰撞。通過本發明,有利于提高三維模型的碰撞檢測精度,簡化算法復雜度,提高檢測效率。
【IPC分類】G06T17/00
【公開號】CN105590339
【申請號】CN201510937549
【發明人】鄭俊
【申請人】廣州南沙3D打印創新研究院
【公開日】2016年5月18日
【申請日】2015年12月15日