CWzjEllipse 類支援繪製任意長短半軸、任意旋轉角度、任意中心位置的橢圓,並可自定義畫筆顏色、寬度與樣式(實線/虛線)。
SetAB(longA, shortA):設置長、短半軸長度。SetLongAxisAngle(angleRad):設置長軸傾斜角度(弧度)。SetOffsetXY(x, y):設置橢圓中心座標。SetPen(pDC, color, width, style):配置畫筆(style=0 實線,1 虛線)。Draw():執行繪圖。CWzjEllipse():預設構造,需後續調用 Set 方法。CWzjEllipse(a, b):指定半軸。CWzjEllipse(a, b, angle, cx, cy):一次性指定半軸、角度、中心。const double PI = 3.14159265;
CDC* pDC = GetDC();
// 繪製四瓣紅色花瓣
for (int i = 0; i < 4; i++) {
CWzjEllipse ell;
ell.SetAB(80, 30);
ell.SetLongAxisAngle(PI / 4 * i);
ell.SetOffsetXY(100, 100);
ell.SetPen(pDC, RGB(255, 0, 0));
ell.Draw();
}
// 綠色寬線橢圓
CWzjEllipse ell2(80, 50);
ell2.SetLongAxisAngle(PI * 5 / 7);
ell2.SetOffsetXY(250, 100);
ell2.SetPen(pDC, RGB(0, 255, 0), 3);
ell2.Draw();
// 藍色虛線橢圓
CWzjEllipse ell3(80, 50, PI * 1.23, 250, 100);
ell3.SetPen(pDC, RGB(0, 0, 255), 2, 1);
ell3.Draw();
適合需要繪製旋轉橢圓、花瓣狀圖形、儀表盤指針軌跡等場景,封裝了複雜的幾何變換與 GDI 繪圖細節。