對(duì)于每一個(gè)實(shí)體(直線,圓弧,圓,橢圓,polyline,polygon,spline 等),在自定義創(chuàng)建圖形實(shí)體時(shí)或是從二維圖形文件(CAD 保存的.dxf 文件)中讀取圖形實(shí)體時(shí),實(shí)體方向是任意的,此時(shí),用戶可以根據(jù)自己的需要修改實(shí)體的加工方向。選中實(shí)體,可修改其加工方向(即切割的進(jìn)給方向)。如可以將圖形實(shí)體繪圖終點(diǎn)作為加工起點(diǎn),由繪圖終點(diǎn)運(yùn)動(dòng)到繪圖起點(diǎn)。對(duì)于不是封閉的圖形如直線、圓弧,圖形實(shí)體換向主要是將起點(diǎn)與終點(diǎn)互換,而對(duì)于封閉的圖形,如圓、橢圓及 polyline 等,圖形實(shí)體換向主要是定義一個(gè)標(biāo)志換向的變量,然后再在具體畫箭頭的函數(shù)中來實(shí)現(xiàn)箭頭的換向。在這里,具體說明直線換向和箭頭實(shí)現(xiàn)的過程。
(1)起點(diǎn)與終點(diǎn)互換的實(shí)現(xiàn)通過調(diào)用 swap()函數(shù)來實(shí)現(xiàn),實(shí)現(xiàn)代碼如下:void RS_Line::revert Direction() { std::swap(data.startpoint,data.endpoint); //標(biāo)準(zhǔn)模板庫中的交換兩個(gè)數(shù)位置的函數(shù)}
(2)箭頭的實(shí)現(xiàn)
為了直觀的判斷實(shí)體加工的方向,特設(shè)計(jì)箭頭來指示由加工起點(diǎn)運(yùn)動(dòng)到加工終點(diǎn)。箭頭是由兩條短直線段組成的。例如實(shí)體圖形直線的箭頭實(shí)現(xiàn)的代碼及計(jì)算繪制直線所需點(diǎn)方法如下:如圖 3.16 所示,已知直線段 AB 為加工軌跡,點(diǎn) O 為 AB 的中點(diǎn),OC、OD 與直線段 AB 的夾角都是 45°,且 OC、OD 都為 10 毫米,求出點(diǎn) C、點(diǎn) D的坐標(biāo),直線段