GDI+ 画渐变色环

在onpaint() 函数中加入如下代码,本次利用DrawArc来实现。

#define PI 3.1415926

int angle=360;

int x=(rect.Width()-300)/2;

int y=190;

int width=300;

int hight=300;

int wide=34;

graphics.SetSmoothingMode(SmoothingModeAntiAlias);//抗锯齿

for(float i = 0.0; i < PI; i += (float)((float)PI/360)) {

float h,tc, tx;

float tr,tg,tb;

tr=tg=tb=1;

h = i*1.9;

tc = 1;

tx = tc * (1 - abs(fmod(h,2) - 1));

if(0 <= h && h < 1) {       tr = tc;   tg = tx;    tb = 0;   }

else if(1 <= h && h < 2) {  tr = tx;   tg = tc;    tb = 0;   }

else if(2 <= h && h < 3) {  tr = 0;    tg = tc;    tb = tx;  }

else if(3 <= h && h < 4) {  tr = 0;    tg = tx;    tb = tc;  }

else if(4 <= h && h < 5) {  tr = tx;   tg = 0;     tb = tc;  }

else if(5 <= h && h < 6) {  tr = tc;   tg = 0;     tb = tx;  }

tr = tr * 255;

tg = tg * 255;

tb = tb * 255;

Gdiplus::Pen pen(Color (255, (byte)tr, (byte)tg,(byte)tb ),wide);

angle-=1;

graphics.DrawArc(&pen, x, y, width, hight, angle ,2);

}

GDI+ 画渐变色环,布布扣,bubuko.com

时间: 2024-10-15 16:10:22

GDI+ 画渐变色环的相关文章

网页设计之PS画渐变线条

第一种线条的画法:画两条直线,这两条直线是 以背景色为基础 , 一个比背景色深  ,一个比背景色浅``. 第二种线条的画法:第一种画法是 图层样式 渐变叠加   叠加一个  背景色 到中间色 再到背景色 的渐变 第二种画法是 画一条 纯色的直线   然后两头用带羽化的选区删除  或者用橡皮擦也可以. 我只用了第一个,第二三种感觉很有用,便记下来,以后使用. 文章转载自 http://blog.sina.com.cn/s/blog_6630a411010152my.html 网页设计之PS画渐变线

GDI+画电子印章

使用GDI+画一个电子印章,初次使用,请多多指教. 以下是Form代码,大家应该都会用,项目文件就不上传了. 效果图 public partial class Form1 : Form { public Form1() { InitializeComponent(); this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); pictureBox1.Size = new Size(W + penWith , W + penWith); }

openCV 和GDI画线效率对照

一. 因为项目须要,原来用GDI做的画线的功能.新的项目中考虑到垮平台的问题.打算用openCV来实现.故此做个效率对照. 二. 2点做一条线,来測试效率. 用了相同的画板大小---256*256的大小,函数通过參数输入.用GetTickCount来实现计时功能. 三. GDI的主要循代码例如以下: void show_line(int line_num,int point_num) { ULONAG start_time = get_tick_count(); VMGdiPolygon* te

用GDI+画验证码

1.新建一个窗体应用程序,在上面拖一个pictureBox对象,为其添加单击事件 2.创建GDI对象.产生随机数画入图片中.画线条.最后将图片到pictureBox中,代码如下: 1 private void pictureBox1_Click(object sender, EventArgs e) 2 { 3 //创建GDI对象 4 Bitmap bmp = new Bitmap(150,40); 5 Graphics g = Graphics.FromImage(bmp); 6 7 //产生

openCV 和GDI画线效率对比

一. 由于项目需要,原来用GDI做的画线的功能,新的项目中考虑到垮平台的问题,打算用openCV来实现,故此做个效率对比. 二. 2点做一条线,来测试效率. 用了同样的画板大小---256*256的大小,函数通过参数输入,用GetTickCount来实现计时功能. 三. GDI的主要循代码如下: void show_line(int line_num,int point_num) { ULONAG start_time = get_tick_count(); VMGdiPolygon* test

GDI+编程小结

GDI+(Graphics Device Interface Plus图形设备接口加)是Windows XP和Windows Server 2003操作系统的子系统,也是.NET框架的重要组成部分,负责在屏幕和打印机上绘制图形图像和显示信息. GDI+不但在功能上比GDI 要强大很多,而且在代码编写方面也更简单,因此会很快成为Windows图形图像程序开发的首选. 一.              GDI+的特点和新增功能 GDI+与GDI一样,都具有设备无关性.应用程序的程序员可利用GDI+这样

GDI编程小结

图形设备接口(GDI)是一个可运行程序,它接受Windows应用程序的画图请求(表现为GDI函数调用),并将它们传给对应的设备驱动程序,完毕特定于硬件的输出,象打印机输出和屏幕输出.GDI负责Windows的全部图形输出,包含屏幕上输出像素.在打印机上输出硬拷贝以及绘制Windows用户界面.也就是Windows的图形编程. 一.GDI体系结构 1.  GDI32.DLL导出的函数 GDI提供几百个Windows程序中能够调用的函数.这些函数大多数是从Win32的子系统DLL GDI32.DLL

GDI+_入门教程【一】

GDI For VisualBasic6.0 [一]文件下载:GDI+ For VB6[一] 简单绘图实例演示百度网盘 1 '以下为作者[vIsiaswx]的教程 2 '(该教程发布的原地址已无法访问,此版是流散网络的电子书版复制过来的.如果声明必要,务必与我联系.) 3 ' E-mail : [email protected] 4 ' QQ: 1919988942 VB6 GDI+ 入门教程[1] GDI+ 介绍 引言:鉴于网上关于 GDI+的教程都是.Net 的,基本上没有 VB6.0 的,

vc++加载透明png图片方法——GDI+和CImage两种

vc++加载透明png图片方法——GDI+和CImage两种 在加载png时遇到了麻烦,后来用了两个方法解决了.一个是用GDI+,另外就是用vs.net MFC自带的CImage. 先看看GDI+的方法 方法1: 1.GDI+画透明图层(alpha)的png图片 stdafx加入如下: #include <comdef.h>//初始化一下com口 #include "GdiPlus.h" using namespace Gdiplus; #pragma comment(li