在VC中实现画任意方向椭圆

来源:岁月联盟 编辑:zhu 时间:2006-09-17
   用作者编写的椭圆类可以绘制任意方向的任意长短半轴椭圆,可以设置椭圆线型和粗细。

  下面是利用CWzjEllipse类是绘制椭圆的代码:

const double PI = 3.14159265;
//获取绘图设备环境
CDC* pDC = GetDC();
//定义椭圆对象
CWzjEllipse ell;
//绘制红色椭圆花瓣
for (int i = 0; i < 4; i++)
{
 //设置长短半轴长
 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);
//设置画笔,椭圆宽为3
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();