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

2016-02-19 18:43 63 1 收藏

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是在VC中实现画任意方向椭圆,一起来学习了解下吧!

【 tulaoshi.com - 编程语言 】

用作者编写的椭圆类可以绘制任意方向的任意长短半轴椭圆,可以设置椭圆线型和粗细。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  下面是利用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();

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

//椭圆长断半轴和长轴方位和中心坐标构造椭圆
CWzjEllipse ell3(80, 50, PI * 1.23, 250, 100);
//设置画笔,虚线椭圆
ell3.SetPen(pDC, RGB(0, 0, 255), 2, 1);
ell3.Draw();

来源:http://www.tulaoshi.com/n/20160219/1618777.html

延伸阅读
很久之前就想给Vckbase写点什么东西了,毕业至今,在vckbase中学了不少东西,也拿了不少代码,今天决定要回报一下,不管老婆呆会会不会拧我耳朵了。 毫秒定时器,为什么要使用毫秒定时器呢?我想原因有两个。第一:CWnd里面的timer不能精确到毫秒级,所以必须要写一个精确到毫秒级的。第二:用CWnd里面的timer代价太大,因为有时我们的类根本就...
VC++中轻松实现滑动控件 作者: 上海同济大学计算机系 小鹰 下载本文示例代码 滑动控件是Windows中最常用的控件之一。一般而言它是由一个滑动条,一个滑块和可选的刻度组成,用户可以通过移动滑块在相应的控件中显示对应的值。通常,在滑动控件附近一定有标签控件或编辑框控件,用...
下面就介绍一下,如何隐藏win32 console application的console窗口 因为此种方法是通过设置编译器的链接开关来实现,所以让我们来看一下编译 器的链接开关选项(也就是linker选项). 首先我们来看一下linker的 /subsystem 选项 该选项的语法形式如下: /subsystem:{console|efi_application|efi_boot_service_driver| efi_rom|efi_runtime_driver|n...
标签: Delphi
  开发中有时需要在流中查找某个字串,这些字串有可能是ASCII表后半部分或混杂.但是网上提供的例程效果不佳而且代码冗长. 后来自己抽个时间写了一个,代码极少,效率很高.仅供各位参考: function ScanStream(T:Tstream;S:String):integer; var i,j:integer; p:Pchar; begin getMem(p,T.size);//分配内...
读者朋友们可能天天使用Visual C++这个强大的工具来开发应用程序,不知道注意到没有,Visual C++每次装载一个项目的时候,为了使项目加载过程不至于太单调,会在状态栏的左半部分会出现一个装载进度条,用来即时显示Visual C++装载项目的进度,当项目装载完毕后,进度条隐藏。那么这个功能是如何实现的呢?为了说明该功能的实现原理,本例...

经验教程

236

收藏

83
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部