文档章节

再学 GDI+[66]: 路径画刷(6) - SetInterpolationColors、GetRectangle

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 226
阅读 2
收藏 0
本例效果图:



代码文件:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormPaint(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses GDIPOBJ, GDIPAPI;

procedure TForm1.FormPaint(Sender: TObject);
var
  g : TGPGraphics;
  path: TGPGraphicsPath;
  pb: TGPPathGradientBrush;
  rt: TGPRect;
const
  pts: array[0..2] of TGPPoint = ((X:90; Y:10), (X:10; Y:160), (X:160; Y:160));
  colors: array[0..2] of TGPColor = (aclGreen, aclAqua, aclBlue);
  pos: array[0..2] of Single = (0.0, 0.25, 1.0); {颜色位置需要 >=0、<=1, 是百分比}
begin
  {三角}
  g := TGPGraphics.Create(Canvas.Handle);
  path := TGPGraphicsPath.Create;
  path.AddPolygon(PGPPoint(@pts), Length(pts));
  pb:= TGPPathGradientBrush.Create(path);
  pb.SetInterpolationColors(@colors, @pos, Length(colors)); {SetInterpolationColors}
  g.FillPath(pb, path);

  {矩形}
  pb.GetRectangle(rt); {GetRectangle}
  path.Reset;
  path.AddRectangle(rt);
  pb.Free;
  pb:= TGPPathGradientBrush.Create(path);
  pb.SetInterpolationColors(@colors, @pos, Length(colors));
  g.TranslateTransform(160, 0);
  g.FillPath(pb, path);

  {椭圆}
  path.Reset;
  path.AddEllipse(rt);
  pb.Free;
  pb:= TGPPathGradientBrush.Create(path);
  pb.SetInterpolationColors(@colors, @pos, Length(colors));
  g.TranslateTransform(160, 0);
  g.FillPath(pb, path);

  pb.Free;
  path.Free;
  g.Free;
end;

end.

 
 
 
 
 

 

 

  
窗体文件:
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 164
  ClientWidth = 491
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  Position = poDesktopCenter
  OnPaint = FormPaint
  PixelsPerInch = 96
  TextHeight = 13
end

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/06/28/1231754.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
简述WPF中的画刷(Brush)

-------------------------------------------------------------------------------- 引用或转载时请保留以下信息: 大可山 [MSN:a3news(AT)hotmail.com] http://www.zpxp.com http://www.b......

Andrewniu
2018/09/30
0
0
【Visual C++】游戏开发笔记之四——游戏画面绘图(一)基本图形绘制

本系列文章由zhmxy555编写,转载请注明出处。 http://blog.csdn.net/zhmxy555/article/details/7333886 作者:毛星云 邮箱: happylifemxy@qq.com 欢迎邮件交流编程心得 从本篇文章开始笔锋一...

长平狐
2012/11/12
135
0
CDC绘图总结

GDI总结:http://dingchaoqun12.blog.163.com/blog/static/11606250420112213396361/ 对话框 控件 视图类 应用程序框架都会调用该CWnd的消息响应成员函数(的覆盖)来绘制窗口客户区。 在Win...

长平狐
2012/10/08
2.4K
0
第二章 2绘制线条简单图形

线条和形状 同Windows其它版本相比,Windows CE提供相当少的功能的领域之一就是基本线条绘制和形状绘制功能。用来创建复杂环形的Chord, Arc, 和Pie函数被去掉了。大部分使用"当前点[current ...

技术小胖子
2017/11/08
0
0
常用的GDI+ 函数使用例子

一、通过Gdi+加载和显示PNG,JPG等格式的图片 二、实现一个渐变的画刷 原文链接:http://blog.csdn.net/toss156/article/details/7272423...

junwong
2012/03/23
251
0

没有更多内容

加载失败,请刷新页面

加载更多

图像库stb_image

https://github.com/nothings/stb 目前一般主流的图像格式也就是bmp,jpg,png,tga,dds,除了DDS一般是给DX用的,虽然一堆OpenGL程序也有用的,但是我一般只用png和tga, png不用说了,带a...

robslove
3分钟前
0
0
Spring 事务提交回滚源码解析

前言 在上篇文章 Spring 事务初始化源码分析 中分析了 Spring 事务初始化的一个过程,当初始化完成后,Spring 是如何去获取事务,当目标方法异常后,又是如何进行回滚的,又或是目标方法执行...

TSMYK
22分钟前
0
0
百度黄埔学院将培养一批首席AI架构师,为“国之重器”赋能

深度学习高端人才不仅是AI发展的重要养分,也是企业转型AI巨大推动力。2019年1月19日,百度黄埔学院——深度学习架构师培养计划在百度科技园举行开学典礼,深度学习技术及应用国家工程实验室...

深度学习之桨
48分钟前
2
0
扒站wget仿站

wget -c -r -p -np -k http://xxx.com/xxx 其中: -c, --continue (断点续传) 接着下载没下载完的文件 -r, --recursive(递归) specify recursive download.(指定递归下载) -p, --page...

临江仙卜算子
51分钟前
2
0
Nextjs+React非页面组件SSR渲染

@随风溜达的向日葵 Nextjs Nextjs是React生态中非常受欢迎的SSR(server side render——服务端渲染)框架,只需要几个步骤就可以搭建一个支持SSR的工程(_Nextjs_的快速搭建见Next.js入门)...

随风溜达的向日葵
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部