首页 > 其他分享 >关于裁剪区域SetClip的初步理解

关于裁剪区域SetClip的初步理解

时间:2022-11-19 11:47:38浏览次数:44  
标签:SetClip 裁剪 System 初步 path ClientSize using setclip

先看一个关于setclip用法的初步使用的例子:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Drawing;
 6 using System.Windows.Forms;
 7 using System.Drawing.Drawing2D;
 8 
 9 namespace SetClipDemo
10 {
11     class SetClipDemo:Form
12     {
13         static void Main(string[] args)
14         {
15             Application.Run(new SetClipDemo());
16         }
17         public SetClipDemo()
18         {
19             Text = "Set Clip Demo";
20             ResizeRedraw = true;
21         }
22 
23         protected override void OnPaint(PaintEventArgs e)
24         {
25             Graphics grfx = e.Graphics;
26             GraphicsPath path = new GraphicsPath();
27             path.AddEllipse(0,0,ClientSize.Width/3 * 2,ClientSize.Height);
28             path.AddEllipse(ClientSize.Width / 3, 0, ClientSize.Width / 3 * 2, ClientSize.Height);
29             //grfx.DrawPath(new Pen(Color.Red), path);
30 
31             grfx.SetClip(path);
32             
33             grfx.FillPath(Brushes.Violet, path);
34         }
35     }
36 }

这个示例比较简单,就是画了两个椭圆,两个椭圆有交叉部分;而后,使用setclip进行区域裁剪,结果如下:

 

关于setclip用法的理解,书中有比较形象的解释,特引用如下

 

裁剪区域setclip生效以后,后续代码中的所涉及的内容,只能在所裁剪的区域中才能展现出来,如上述代码中的violet颜色,我们使用的代码是填充整个客户区的,但是裁剪区域之后,只能在裁剪区域中才可以看到violet颜色。

标签:SetClip,裁剪,System,初步,path,ClientSize,using,setclip
From: https://www.cnblogs.com/chenlight/p/16905751.html

相关文章

  • Global Mapperv17 裁剪dem并导出等高线
    1、加载dem数据数据投影2、加载shp范围3、选中范围数据4、裁剪5、生成等高线6、导出等高线矢量......
  • FastAPI 初步尝试
    1.json模式服务端fromtypingimportUnionfromfastapiimportFastAPIfrompydanticimportBaseModelapp=FastAPI()classItem(BaseModel):name:str......
  • UOS家庭版初步使用遇到得问题记录
    一、安装问题硬盘如果太小不要用自动分区方式这样根分区会很小(可能就10G多)二、安装坚果云问题1、应用商店自带的坚果云是安卓应用无法同步本地文件夹2、官方下载对应的......
  • Window内核初步
    mov一个dword大小的内存访问成功几个条件段+页不能通过原因是页限制x0地址不能访问段描述符段描述符拆分练习00cf9b00`0000ffff11001111100110110000000011......
  • day 26-css初步学习
    css两种改变html格式的方法:内部style:在title下添加<style>写选择器的声明 1<!--<style>-->2<!--h1{-->3<!--color:aqua;-->......
  • 面向对象的思想初步了解
    面向对象和之前学的面向过程是2种不同的编程思想,两者的思维有较大的区别,下面将举例初步表现这两种思想的差异性设计一个程序去统计字符串"wantyoutoknowonething"中......
  • SpringBoot(一):初步认识SpringBoot
    一、SpringBoot是什么 在了解SpringBoot之前,我们需要先来回顾一下Spring。Spring是一个轻量级的WEB应用开发的框架,它的初衷是为了简化企业级应用开发的复杂性,说白了就是......
  • UGUI 3D粒子特效裁剪,层级,适配
    Unity里默认的粒子特效是3D渲染方式的,而UGUI又是特殊的渲染方式。如果想在UI里直接放入粒子特效,会导致:分层问题,粒子特效的层级排序由Z轴以及sortlayer决定,而UI的层级排......
  • 0:Linux的初步认识-步入Linux的现代方法
    目录​​0.0系统的认识​​​​0.1Linux操作系统认识,以及开源的提出:Linux的千奇百怪的版本​​​​0.2开源的含义​​​​0.3Linux的用途,各类发行版本​​0.0系统的认......
  • 玩转微信小程序 之 初步了解微信小程序(2019/04/05)
    LZ-Says:现在能做的,就是踏踏实实,走好每一步~不去想未来会如何,安心做好自己应该做的事儿即可。前言前几日,集团官网开发暂时告一段落,回顾这段经历,感觉自己各方面还是有很多不足......