[發明專利]基于視圖的體素幾何參數提取方法有效
| 申請號: | 201710896904.0 | 申請日: | 2017-09-28 |
| 公開(公告)號: | CN107680154B | 公開(公告)日: | 2020-01-10 |
| 發明(設計)人: | 許社教;杜美玲;靳牧群;李唯;韓碩;楊西惠;張建國 | 申請(專利權)人: | 西安電子科技大學 |
| 主分類號: | G06T15/08 | 分類號: | G06T15/08;G06T15/10;G06T17/00 |
| 代理公司: | 61108 西安吉盛專利代理有限責任公司 | 代理人: | 陳光磊 |
| 地址: | 710071 陜西省*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 幾何參數 組合體 體素 圖形平臺 拉伸體 三視圖 視區 計算機輔助教學 讀取 計算機識別 交互技術 逆向工程 人機交互 人機結合 三維建模 三維設計 三維重建 視圖分割 數據文件 投影坐標 坐標形式 俯視圖 拉伸線 輸出體 投影圖 引導的 運算量 左視圖 可用 實形 圖線 投影 課程 描繪 分類 轉換 記錄 | ||
1.基于視圖的體素幾何參數提取方法,其特征是:包括如下步驟:
步驟101:打開一個三視圖數據文件;三視圖數據文件是在X軸水平朝右、Y軸豎直朝上、原點在左下角這樣的二維直角坐標系下描述的一個組合體圖形文件,其中,組合體的主視圖、俯視圖和左視圖之間嚴格符合“長對正、高平齊、寬相等”的投影規律且視圖按1:1的比例繪制,視圖中的圖線包括直線段、圓和圓弧,圖線的線型包括粗實線、細虛線和細點畫線,直線段用其兩個端點和線型描述,圓用其圓心、半徑和線型描述,圓弧用其圓心、半徑、起始角度、終止角度和線型描述;
步驟102:從打開的文件中讀取圖線信息,將讀取到的直線段數據存入鏈表Line_list,圓數據存入鏈表Circle_list,圓弧數據存入鏈表Arc_list中;
步驟103:遍歷鏈表Line_list,Circle_list,Arc_list,找出三視圖分割線,從三視圖圖形中分割出主視圖、俯視圖和左視圖;
步驟104: 將分割出的主視圖構成信息按直線段、圓和圓弧類型分別存入鏈表FrontViewData.Line_list、FrontViewData.Circle_list、FrontViewData.Arc_list中,將分割出的俯視圖構成信息按直線段、圓和圓弧類型分別存入鏈表TopViewData.Line_list、TopViewData.Circle_list、TopViewData.Arc_list中,將分割出的左視圖構成信息按直線段、圓和圓弧類型分別存入鏈表SideViewData.Line_list、SideViewData.Circle_list、SideViewData.Arc_list中;
步驟105:建立投影坐標系,求出組合體的三個投影坐標;
步驟106:利用VC++6.0和OpenGL搭建一個圖形平臺,該圖形平臺具有左上、左下、右上、右下四個視區,其中左上視區用于繪制主視圖,建立的二維直角坐標系的原點在視區的右下角,X軸正向水平朝左,Z軸正向豎直朝上;左下視區用于繪制俯視圖,建立的二維直角坐標系的原點在視區的右上角,X軸正向水平朝左,Y軸正向豎直朝下;右上視區用于繪制左視圖,建立的二維直角坐標系的原點在視區的左下角,Y軸正向水平朝右,Z軸正向豎直朝上;右下視區用于顯示重建的三維模型,坐標系為常見的三維右手直角坐標系;該圖形平臺能繪制線型為粗實線、細虛線、細點畫線的直線段、圓和圓弧,具有用于體素信息提取的主視圖、俯視圖、左視圖切換按鈕和非拉伸體素投影描繪按鈕、提取拉伸體素按鈕、體素提取結果按鈕,具有用于體素信息提取的延伸線繪制、特征點捕捉和投影關聯功能,具有每個視區內的圖形屏幕縮放功能;非拉伸體素是指長方體、楔形體、圓柱體、圓錐體和圓球體,楔形體是由一個長方體沿表面對角線切分得到的全等的兩個立體之一;拉伸體素是由一個平行于某個坐標平面的基圖形沿坐標軸正方向等厚度拉伸形成的一個立體;基圖形是最靠近原點的用于拉伸形成一個體的平面上的封閉圖線,是由純直線段、純圓弧段或直線段、圓弧混合構成的首尾相連的圖線;延伸線是指以視圖上已有或描繪的直線段端點、中點、圓或圓弧的圓心、直線段交點為起點,以鼠標移動方向為方向的水平或豎直射線,延伸線以點線型繪出;特征點捕捉就是抓取視圖上直線段的端點、中點,抓取圓、圓弧的圓心,抓取兩直線段或直線段、延伸線的交點,抓取就是當移動的鼠標光標位置與這些特征點的距離小于0.001時,這些特征點就以小尺寸的特殊符號顯示出來,端點符號為“□”,中點符號為“△”,圓心符號為“●”,交點符號為 “×”,當這些特征點的顯示符號出現后,按下或松開鼠標器拾取鍵后就把這些特征點作為要輸入的點;投影關聯是指在一個視圖上描繪出體素一個投影后,在其他兩個視圖上將滿足“長對正、高平齊、寬相等”約束關系的圖線上的端點、圓心以綠色小圓圈醒目顯示;
步驟107:在搭建的圖形平臺左上視區繪出鏈表FrontViewData.Line_list、FrontViewData.Circle_list、FrontViewData.Arc_list中的圖線,得到主視圖;在圖形平臺左下視區繪出鏈表TopViewData.Line_list、TopViewData.Circle_list、TopViewData.Arc_list中的圖線,得到俯視圖;在圖形平臺右上視區繪出鏈表SideViewData.Line_list、SideViewData.Circle_list、SideViewData.Arc_list中的圖線,得到左視圖;
步驟108:判斷是否按下提取拉伸體素的按鈕,若是則轉至步驟116,若不是則轉至步驟109;
步驟109:點擊視圖切換按鈕,分別在主視圖、俯視圖、左視圖上描繪直線段、圓、圓弧圖線,若描繪的直線段不是視圖本身的線段,則將其按所在的視圖分別存入鏈表FrontViewData.Line_list、TopViewData.Line_list、SideViewData.Line_list中,描繪的圖線以紅色繪出;描繪圖線是指利用特征點捕捉、延伸線和投影關聯工具沿視圖上的輪廓線進行繪制或利用圖線端點、中點、圓心、交點為特征點進行繪制;描繪直線段的方法是:移動鼠標光標到某一特征點并按下鼠標左鍵,然后按住鼠標左鍵不放并移動鼠標光標到另一特征點時松開鼠標左鍵,則在此兩個特征點之間描繪一條直線段;描繪圓、圓弧的方法是:移動鼠標光標到某一圓或圓弧的圓心并按下鼠標左鍵,然后按住鼠標左鍵不放并沿半徑方向移動鼠標光標到弧上時松開鼠標左鍵,若原視圖圖線為圓則描繪出圓,若原視圖圖線為圓弧則描繪出圓弧;
步驟110:分別在三個視圖中提取體素投影圖元信息,并將其保存在各自的圖元信息鏈表中;圖元信息是指構成體素投影的單元信息,包括直線段、圓、圓弧;
步驟111:對主視圖體素投影特征進行識別,并對識別結果進行標記;
步驟112:對俯視圖體素投影特征進行識別,方法為執行步驟111,將步驟111中的鏈表FrontViewData.IXD.Circle_list替換為TopViewData.IXD.Circle_list、鏈表FrontViewData.IXD.Line_list替換為TopViewData.IXD.Line_list,投影特征為圓時標記為T_C,投影特征為三角形時標記為T_T,投影特征為矩形時標記為T_R;
步驟113:對左視圖體素投影特征進行識別,方法為執行步驟111,將步驟111中的鏈表FrontViewData.IXD.Circle_list替換為SideViewData.IXD.Circle_list、鏈表FrontViewData.IXD.Line_list
替換為SideViewData.IXD.Line_list,投影特征為圓時標記為S_C,投影特征為三角形時標記為S_T,投影特征為矩形時標記為S_R;
步驟114:識別體素類型并提取體素參數,并將識別出的體素三個投影以藍色繪出;
步驟115:輸出體素類型和參數,體素類型為長方體、楔形體、圓柱體、圓錐體和圓球體之一,長方體的參數為定位點和長、寬、高尺寸,楔形體的參數為定位點、三個軸向尺寸和厚度方向的三個方向角,圓柱體的參數為定位點、底面半徑、高度和軸線方向的三個方向角,圓錐體的參數為定位點、底面半徑、高度和軸線方向的三個方向角,圓球體的參數為球心和半徑;將鏈表FrontViewData.IXD.Line_list、FrontViewData.IXD.Circle_list、TopViewData.IXD.Line_list、TopViewData.IXD.Circle_list、SideViewData.IXD.Line_list、SideViewData.IXD.Circle_list清零;
步驟116:按照步驟109的方法,在反映拉伸體素基圖形實形的視圖上描繪基圖形實形,在反映拉伸體素厚度的視圖上描繪拉伸線,描繪的圖線以紅色繪出;拉伸線是反映拉伸厚度的一條直線段;
步驟117:參照步驟110,提取基圖形實形信息和拉伸線信息并進行保存,若在主視圖上描繪了基圖形實形,則基圖形實形信息保存在基圖形實形鏈表FrontBaseGraph.IXD_list中,若在俯視圖上描繪了基圖形實形,則基圖形實形信息保存在基圖形實形鏈表TopBaseGraph.IXD_list中,若在左視圖上描繪了基圖形實形,則基圖形實形信息保存在基圖形實形鏈表SideBaseGraph.IXD_list中;若在主視圖上描繪了拉伸線,則拉伸線的兩個端點保存在鏈表FrontExt.IXD_list中,若在俯視圖上描繪了拉伸線,則拉伸線的兩個端點保存在鏈表TopExt.IXD_list中,若在左視圖上描繪了拉伸線,則拉伸線的兩個端點保存在鏈表SideExt.IXD_list;基圖形實形鏈表FrontBaseGraph.IXD_list、TopBaseGraph.IXD_list和SideBaseGraph.IXD_list中的每個元素包括線類型和幾何參數,直線段的線類型為LIN,幾何參數為直線段的起點和終點;圓弧的線類型為ARC,幾何參數為圓心、半徑、起始角度、終止角度;參照步驟111中三角形封閉性檢查的方法,若鏈表FrontBaseGraph.IXD_list或TopBaseGraph.IXD_list或SideBaseGraph.IXD_list中的元素遍歷完后,所存儲的圖線是首尾相連的,則該鏈表中的基圖形實形合法,否則提示不合法,需要進行重新描繪直至合法為止;
步驟118:輸出基圖形實形數據和拉伸厚度,將體素提取過程中使用的臨時鏈表清零;
步驟119:重復步驟108~步驟118,直到三視圖中可提取的體素提取完為止;
所述的步驟105中建立投影坐標系,求出組合體的三個投影坐標,包括以下步驟:
步驟301:遍歷主視圖鏈表FrontViewData.Line_list、FrontViewData.Circle_list、FrontViewData.Arc_list中的圖線,求出視圖的最大x坐標值Fxmax、最小y坐標值Fymin;遍歷俯視圖鏈表TopViewData.Line_list、TopViewData.Circle_list、TopViewData.Arc_list中的圖線,求出視圖的最大y坐標值Tymax;遍歷左視圖鏈表SideViewData.Line_list、SideViewData.Circle_list、SideViewData.Arc_list中的圖線,求出視圖的最小x坐標值Sxmin;
步驟302: 令D=1/2Min(Sxmin-Fxmax,Fymin-Tymax),x0=Sxmin-D,y0=Tymax+D,在三視圖平面上建立展開后的投影坐標系O′-X′-Y′-Z′,其中投影坐標系的原點為O′(x0,y0),X′軸正向水平朝左,Z′軸正向豎直朝上,Y′軸正向分別與X′軸正向、Z′軸正向相反;
步驟303:遍歷主視圖鏈FrontViewData.Line_list、FrontViewData.Circle_list、FrontViewData.Arc_list中的圖線,設點(x,y)為圖線的端點或圓心,令x′=x0-x,z′=y-y0,用點(x′,z′)替換這三個鏈表中的點(x,y);
步驟304:遍歷俯視圖鏈表TopViewData.Line_list、TopViewData.Circle_list、TopViewData.Arc_list中的圖線,設點(x,y)為圖線的端點或圓心,令x′=x0-x,y′=y0-y,用點(x′,y′)替換這三個鏈表中的點(x,y);
步驟305:遍歷左視圖鏈表SideViewData.Line_list、SideViewData.Circle_list、SideViewData.Arc_list中的圖線,設點(x,y)為圖線的端點或圓心,令y′=x-x0,z′=y-y0,用點(y′,z′)替換這三個鏈表中的點(x,y);
所述的步驟111中對主視圖體素投影特征進行識別,并對識別結果進行標記,包括以下步驟:
步驟501:判斷鏈表FrontViewData.IXD.Circle_list中的元素個數是否為1,若為1則轉至步驟502,否則轉至步驟503;
步驟502:主視圖體素投影特征為圓,標記其投影特征為F_C,結束;
步驟503:判斷鏈表FrontViewData.IXD.Line_list中的元素個數是否為3,若為3則轉至步驟504,否則轉至步驟511;
步驟504:取鏈表FrontViewData.IXD.Line_list中第一條直線段為查找邊,保存此線段起始點并設該起始點為查找點,令查找次數為0;
步驟505:判斷查找次數是否為3,若為3則轉至步驟509,否則轉至步驟506;
步驟506:判斷在鏈表FrontViewData.IXD.Line_list中是否存在某個端點與查找點重合的直線段,若存在則轉至步驟507,否則轉至步驟519;
步驟507:判斷新邊與舊邊是否共線,若共線則轉至步驟519,否則轉至步驟508;新邊是指找到的端點與當前查找點重合的邊,舊邊是指當前查找點所在的邊;設新邊矢量為,舊邊矢量為,若(·)/()的值為1或-1,則新邊與舊邊共線;
步驟508:將新邊作為下一輪的查找邊,令新邊重合點之外的端點為下一輪的查找點,令查找次數加1;
步驟509:判斷當前查找點與保存的起始點是否重合,若重合則轉至步驟510,否則轉至步驟519;
步驟510:主視圖體素投影特征為三角形,標記其投影特征為F_T,結束;
步驟511:判斷鏈表FrontViewData.IXD.Line_list 中的元素個數是否為4,若為4則轉至步驟512,否則轉至步驟519;
步驟512:取鏈表FrontViewData.IXD.Line_list中第一條直線段為查找邊,保存此線段起始點并設該起始點為查找點,令查找次數為0;
步驟513:判斷查找次數是否為4,若為4則轉至步驟517,否則轉至步驟514;
步驟514:判斷在鏈表FrontViewData.IXD.Line_list中是否存在某個端點與查找點重合的直線段,若存在則轉至步驟515,否則轉至步驟519;
步驟515:判斷新邊與舊邊是否垂直,若垂直則轉至步驟516,否則轉至步驟519;設新邊矢量為,舊邊矢量為,若·=0,則新邊與舊邊垂直;
步驟516:將新邊作為下一輪的查找邊,令新邊重合點之外的端點為下一輪的查找點,令查找次數加1;
步驟517:判斷當前查找點與保存的起始點是否重合,若重合則轉至步驟518,否則轉至步驟519;
步驟518:主視圖體素投影特征為矩形,標記其投影特征為F_R,結束;
步驟519:主視圖體素投影特征識別失敗;
所述的步驟114中識別體素類型并提取體素參數,并將識別出的體素三個投影以藍色繪出,包括以下步驟:
步驟601:判斷體素三個投影是否同時滿足主視圖特征為F_R、俯視圖特征為T_R、左視圖特征為S_R,若同時滿足則轉步驟602,否則轉至步驟604;
步驟602:體素類型為正放的長方體;正放是指體素的棱邊或主要棱邊分別與坐標系的坐標軸平行,或者體素的軸線與某一坐標軸平行;
步驟603:求出長方體的定位點和長、寬、高尺寸,轉至步驟634;長方體的定位點取最靠近原點的頂點,長、寬、高尺寸分別為長方體沿坐標軸方向的棱邊長度;遍歷鏈表FrontViewData.IXD.Line_list,求出4條線段的xmin、xmax、zmin、zmax,遍歷鏈表TopViewData.IXD.Line_list,求出4條線段的ymin、ymax,則長方體的定位點為(xmin,ymin,zmin),長方體的長、寬、高尺寸分別為xmax-xmin、ymax-ymin、zmax-zmin,長、寬、高為正值時表示沿坐標軸正向生成長方體;
步驟604:判斷體素三個投影是否同時滿足主視圖特征為F_R、俯視圖特征為T_T、左視圖特征為S_R,若同時滿足則轉步驟605,否則轉至步驟607;
步驟605:體素類型為正放的厚度方向沿Z軸的楔形體;楔形體的厚度方向是指垂直于靠近坐標平面的底面三角形且沿坐標軸正向的矢量方向;
步驟606:求出楔形體的定位點、軸向尺寸和厚度方向的方向角,轉至步驟634;楔形體的定位點取最靠近原點的底面直角三角形的直角頂點,軸向尺寸為沿三個坐標軸方向的棱邊長度,方向角是指厚度方向與X軸、Y軸、Z軸的夾角;遍歷鏈表FrontViewData.IXD.Line_list,求出4條線段的xmin、xmax、zmin、zmax,遍歷鏈表TopViewData.IXD.Line_list,求出3條線段的ymin、ymax及直角頂點(xsq,ysq),則楔形體的定位點為(xsq,ysq,zmin);當xmax>xsq同時ymax>ysq時,楔形體沿X軸、Y軸的軸向尺寸分別為xmax-xsq、ymax-ysq;當xsq>xmin同時ymax>ysq時,楔形體沿X軸、Y軸的軸向尺寸分別為xmin- xsq、ymax-ysq;當xsq>xmin同時ysq>ymin時,楔形體沿X軸、Y軸的軸向尺寸分別為xmin- xsq、ymin- ysq;當xmax>xsq同時ysq>ymin時,楔形體沿X軸、Y軸的軸向尺寸分別為xmax-xsq、ymin- ysq;楔形體沿Z軸的軸向尺寸為zmax-zmin;軸向尺寸為正值時表示沿坐標軸正向生成楔形體,軸向尺寸為負值時表示沿坐標軸負向生成楔形體;厚度方向的方向角分別為90°、90°、0°;
步驟607:判斷體素三個投影是否同時滿足主視圖特征為F_R、俯視圖特征為T_R、左視圖特征為S_T,若同時滿足則轉步驟608,否則轉至步驟610;
步驟608:體素類型為正放的厚度方向沿X軸的楔形體;
步驟609:求出楔形體的定位點、軸向尺寸和厚度方向的方向角,轉至步驟634;遍歷鏈表FrontViewData.IXD.Line_list,求出4條線段的xmin、xmax、zmin、zmax,遍歷鏈表SideViewData.IXD.Line_list,求出3條線段的ymin、ymax及直角頂點(ysq,zsq),則楔形體的定位點為(xmin, ysq,zsq);楔形體沿X軸的軸向尺寸為xmax-xmin;當ymax>ysq同時zmax>zsq時,楔形體沿Y軸、Z軸的軸向尺寸分別為ymax-ysq、zmax-zsq;當ysq>ymin同時zmax>zsq時,楔形體沿Y軸、Z軸的軸向尺寸分別為ymin- ysq、zmax-zsq;當ysq>ymin同時zsq>zmin時,楔形體沿Y軸、Z軸的軸向尺寸分別為ymin- ysq、zmin-zsq;當ymax>ysq同時zsq>zmin時,楔形體沿Y軸、Z軸的軸向尺寸分別為ymax-ysq、zmin- zsq;厚度方向的方向角分別為0°、90°、90°;
步驟610:判斷體素三個投影是否同時滿足主視圖特征為F_T、俯視圖特征為T_R、左視圖特征為S_R,若同時滿足則轉步驟611,否則轉至步驟613;
步驟611:體素類型為正放的厚度方向沿Y軸的楔形體;
步驟612:求出楔形體的定位點、軸向尺寸和厚度方向的方向角,轉至步驟634;遍歷鏈表FrontViewData.IXD.Line_list,求出3條線段的zmin、zmax及直角頂點(xsq,zsq),遍歷鏈表TopViewData.IXD.Line_list,求出4條線段的xmin、xmax、ymin、ymax,則楔形體的定位點為(xsq, ymin,zsq);楔形體沿Y軸的軸向尺寸為ymax-ymin;當xmax>xsq同時zmax>zsq時,楔形體沿X軸、Z軸的軸向尺寸分別為xmax-xsq、zmax-zsq;當xmax>xsq同時zsq>zmin時,楔形體沿X軸、Z軸的軸向尺寸分別為xmax-xsq、zmin-zsq;當xsq>xmin同時zsq>zmin時,楔形體沿X軸、Z軸的軸向尺寸分別為xmin- xsq、zmin-zsq;當xsq>xmin同時zmax>zsq時,楔形體沿X軸、Z軸的軸向尺寸分別為xmin-xsq、zmax- zsq;厚度方向的方向角分別為90°、0°、90°;
步驟613:判斷體素三個投影是否同時滿足主視圖特征為F_R、俯視圖特征為T_C、左視圖特征為S_R,若同時滿足則轉步驟614,否則轉至步驟616;
步驟614:體素類型為正放的軸線沿Z軸的圓柱體;
步驟615:求出圓柱體的定位點、底面半徑、高度和軸線方向的方向角,轉至步驟634;圓柱體的定位點取最靠近原點的底面圓的圓心,軸線方向是指垂直于靠近坐標平面的底面圓且沿坐標軸正向的矢量方向,軸線方向的方向角是指軸線方向與X軸、Y軸、Z軸的夾角;遍歷鏈表FrontViewData.IXD.Line_list,求出4條線段的zmin、zmax,遍歷鏈表TopViewData.IXD.Circle_list,獲取圓心(xc,yc)和半徑值r,則圓柱體的定位點為(xc,yc,zmin),底面半徑為r,高度為zmax-zmin,軸線方向的方向角為90°、90°、0°;
步驟616:判斷體素三個投影是否同時滿足主視圖特征為F_R、俯視圖特征為T_R、左視圖特征為S_C,若同時滿足則轉步驟617,否則轉至步驟619;
步驟617:體素類型為正放的軸線沿X軸的圓柱體;
步驟618:求出圓柱體的定位點、底面半徑、高度和軸線方向的方向角,轉至步驟634;遍歷鏈表FrontViewData.IXD.Line_list,求出4條線段的xmin、xmax,遍歷鏈表SideViewData.IXD.Circle_list,獲取圓心(yc,zc)和半徑值r,則圓柱體的定位點為(xmin,yc,zc),底面半徑為r,高度為xmax-xmin,軸線方向的方向角為0°、90°、90°;
步驟619:判斷體素三個投影是否同時滿足主視圖特征為F_C、俯視圖特征為T_R、左視圖特征為S_R,若同時滿足則轉步驟620,否則轉至步驟612;
步驟620:體素類型為正放的軸線沿Y軸的圓柱體;
步驟621:求出圓柱體的定位點、底面半徑、高度和軸線方向的方向角,轉至步驟634;遍歷鏈表FrontViewData.IXD.Circle_list,獲取圓心(xc,zc)和半徑值r,遍歷鏈表TopViewData.IXD.Line_list,求出4條線段的ymin、ymax,則圓柱體的定位點為(xc,ymin,zc),底面半徑為r,高度為ymax-ymin,軸線方向的方向角為90°、0°、90°;
步驟622:判斷體素三個投影是否同時滿足主視圖特征為F_T、俯視圖特征為T_C、左視圖特征為S_T,若同時滿足則轉步驟623,否則轉至步驟625;
步驟623:體素類型為正放的軸線沿Z軸的圓錐體;
步驟624:求出圓錐體的定位點、底面半徑、高度和軸線方向的方向角,轉至步驟634;圓錐體的定位點取最靠近原點的底面圓的圓心,軸線方向是指垂直于靠近坐標平面的底面圓且沿坐標軸正向的矢量方向,軸線方向的方向角是指軸線方向與X軸、Y軸、Z軸的夾角;遍歷鏈表FrontViewData.IXD.Line_list,求出3條線段的zmin、zmax,遍歷鏈表TopViewData.IXD.Circle_list,獲取圓心(xc,yc)和半徑值r,則圓錐體的定位點為(xc,yc,zmin),底面半徑為r,高度為zmax-zmin,軸線方向的方向角為90°、90°、0°;
步驟625:判斷體素三個投影是否同時滿足主視圖特征為F_T、俯視圖特征為T_T、左視圖特征為S_C,若同時滿足則轉步驟626,否則轉至步驟628;
步驟626:體素類型為正放的軸線沿X軸的圓錐體;
步驟627:求出圓錐體的定位點、底面半徑、高度和軸線方向的方向角,轉至步驟634;遍歷鏈表FrontViewData.IXD.Line_list,求出3條線段的xmin、xmax,遍歷鏈表SideViewData.IXD.Circle_list,獲取圓心(yc,zc)和半徑值r,則圓錐體的定位點為(xmin,yc,zc),底面半徑為r,高度為xmax-xmin,軸線方向的方向角為0°、90°、90°;
步驟628:判斷體素三個投影是否同時滿足主視圖特征為F_C、俯視圖特征為T_T、左視圖特征為S_T,若同時滿足則轉步驟629,否則轉至步驟631;
步驟629:體素類型為正放的軸線沿Y軸的圓錐體;
步驟630:求出圓錐體的定位點、底面半徑、高度和軸線方向的方向角,轉至步驟634;遍歷鏈表FrontViewData.IXD.Circle_list,獲取圓心(xc,zc)和半徑值r,遍歷鏈表TopViewData.IXD.Line_list,求出3條線段的ymin、ymax,則圓錐體的定位點為(xc,ymin,zc),底面半徑為r,高度為ymax-ymin,軸線方向的方向角為90°、0°、90°;
步驟631:判斷體素三個投影是否同時滿足主視圖特征為F_C、俯視圖特征為T_C、左視圖特征為S_C,若同時滿足則轉步驟632,否則轉至步驟635;
步驟632:體素類型為圓球體;
步驟633:求出圓球體的球心和半徑,轉至步驟634;遍歷鏈表FrontViewData.IXD.Circle_list,獲取圓心(xc,zc)和半徑值r,遍歷鏈表TopViewData.IXD.Circle_list,獲取圓心(xc,yc),則圓球體的球心為(xc,yc,zc),半徑為r;
步驟634:將體素的三個投影以藍色繪出;
步驟635:體素類型識別失敗。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西安電子科技大學,未經西安電子科技大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710896904.0/1.html,轉載請聲明來源鉆瓜專利網。





