C# GraphicsPath 类学习

先在窗体放2个picturebox,

然后看一下如下代码;

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Drawing2D;namespace yuanpic
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){GraphicsPath gp = new GraphicsPath();gp.AddEllipse(pictureBox2.ClientRectangle);Region region = new Region(gp);pictureBox2.Region = region;gp.Dispose();region.Dispose();}}
}

 说是可以把picturebox变为圆形;运行如下;

还不太了解,先看一下 GraphicsPath 类;

GraphicsPath 类

命名空间:
System.Drawing.Drawing2D
程序集:
System.Drawing.Common.dll
表示一系列相互连接的直线和曲线。 此类不能被继承。

应用程序使用路径绘制形状轮廓、填充形状的内部以及创建剪裁区域。 图形引擎在世界坐标空间的路径中维护几何形状的坐标。
路径可能由 (子路径) 的任意数字组成。 每个图都由连接线和曲线序列或几何形状基元组成。 图的起点是连接线和曲线序列中的第一个点。 终点是序列中的最后一个点。 几何形状基元的起点和终点由基元规范定义。
一个包含连接线和曲线序列的图, (其起点和终点可能是巧合的,) 是一个打开的数字,除非它显式关闭。 通过使用该方法可以显式关闭图, CloseFigure 该方法通过将一行从终点连接到起点来关闭当前图。 由几何形状基元组成的图是封闭图。
例如,为了填充和剪裁 (,如果使用) 呈现 FillPath 路径,则所有打开的数字都通过从图的第一个点向最后一个点添加一行来关闭。
创建路径或关闭图时,将隐式启动新图。 调用方法时 StartFigure ,将显式创建一个新图。
将几何形状基元添加到路径时,它会添加包含几何形状的图形,并隐式启动一个新图形。 因此,路径中始终存在当前图。 将线条和曲线添加到路径时,根据需要添加隐式线条,以便将当前图的终点连接到新线条和曲线的起点,以形成连接线和曲线序列。
图有一个方向,描述在起点和终点之间如何跟踪线条和曲线段。 方向按照将线条和曲线添加到图形的顺序定义,或由几何形状基元定义。 方向用于确定剪裁和填充的路径内部。

有如下的构造函数,
GraphicsPath()    
GraphicsPath(FillMode)    
GraphicsPath(Point[], Byte[])    
GraphicsPath(Point[], Byte[], FillMode)    
GraphicsPath(PointF[], Byte[])    
GraphicsPath(PointF[], Byte[], FillMode)    


其方法可以,

    向当前图形追加一段椭圆弧;

    在当前图形中添加一段立方贝塞尔曲线;

    在当前图形中添加一系列相互连接的立方贝塞尔曲线;
    
    向此路径添加一个闭合曲线, 由于曲线经过数组中的每个点,因此使用基数样条曲线;

    向当前图形添加一段样条曲线;

   向当前路径添加一个椭圆;
    
    向当前图形追加一条线段;

    向此 GraphicsPath 末尾追加一系列相互连接的线段;
    
    将指定的 GraphicsPath 追加到该路径;

    等;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/96665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

物流仓储RFID系统设计案例分享

一、项目背景 为了实现仓储货物管理数字化转型的目标,提升仓储业务自动化和数字化水平,在满足仓储日常需求的基础上,验证物联网和人工智能相关技术能力,为仓储业务的柔性自动化、快速部署和复制提供储备能力。 项目设计目标包括…

2023/9/28 -- ARM

【内存读写指令】 int *p0X12345678 *p100;//向内存中写入数据 int a *p;//从内存读取 1.单寄存器内存读写指令 1.1 指令码以及功能 向内存中写: str:向内存中写一个字(4字节)的数据 strh:向内存写半个字(2字节)的数据 strb:向内存写一个字…

布隆过滤器及其用法

1 定义 布隆过滤器(Bloom Filter, BF)是由Howrad Bloom在1970年提出的一种具有高效时间和空间效率的二进制向量数据结构,用来检测一个元素是不是属于这个集合。注意,布隆过滤器只判断是否出现在集合中,无法给出元素在集合中的具体位置。 1.1…

HubSpot成功全靠它?集客营销大揭秘

在当今数字化的商业世界中,吸引、转化和维护客户已经变得更具挑战性和复杂性。然而,有一家公司已经成功地帮助数千家企业实现了集客营销的成功。这家公司就是HubSpot。那么,HubSpot的成功到底全靠了什么?让我们揭开集客营销的大秘…

openGauss学习笔记-92 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用MOT SQL覆盖和限制

文章目录 openGauss学习笔记-92 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用MOT SQL覆盖和限制92.1 不支持的特性92.2 MOT限制92.3 不支持的DDL操作92.4 不支持的数据类型92.5 不支持的索引DDL和索引92.6 不支持的DML92.7 不支持的JIT功能(…

3D孪生场景搭建:3D漫游

上一篇 文章介绍了如何使用 NSDT 编辑器 制作模拟仿真应用场景,今天这篇文章将介绍如何使用NSDT 编辑器 设置3D漫游。 1、什么是3D漫游 3D漫游是指基于3D技术,将用户带入一个虚拟的三维环境中,通过交互式的手段,让用户可以自由地…

前端作业(17)

之后的20个作业&#xff0c;学自【20个JavaScript经典案例-哔哩哔哩】 https://b23.tv/kVj1P5f 支付倒计时 1. 支付10s倒计时 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compat…

跨境必备!WhatsApp营销——注册、养号、防封号!

前面的文章&#xff0c;我们给大家介绍了WhatsApp营销的定义以及重要性&#xff0c;相信许多跨境小伙伴已经摩拳擦掌&#xff0c;迫不及待讲WhatsApp纳入您的全渠道营销策略。当然&#xff0c;工欲善其事&#xff0c;必先利其器&#xff0c;拥有安全的WhatsApp号与登录环境会让…

【网络安全 --- kali2022安装】kali2022 超详细的安装教程(提供镜像)

如果你还没有安装vmware 虚拟机&#xff0c;请参考下面博客安装 【网络安全 --- 工具安装】VMware 16.0 详细安装过程&#xff08;提供资源&#xff09;-CSDN博客【网络安全 --- 工具安装】VMware 16.0 详细安装过程&#xff08;提供资源&#xff09;https://blog.csdn.net/m0…

Cocos Creator3.8 项目实战(四)巧用九宫格图像拉伸

一、为什么要使用九宫格图像拉伸 相信做过前端的同学都知道&#xff0c;ui &#xff08;图片&#xff09;资源对包体大小和内存都有非常直接的影响。 通常ui 资源都是图片&#xff0c;也是最占资源量的资源类型&#xff0c;游戏中的ui 资源还是人机交互的最重要的部分&#xff…

解决 Jenkins 性能缓慢的问题~转

解决 Jenkins 性能缓慢的问题 Docker中文社区 ​​ 计算机技术与软件专业技术资格持证人 2 人赞同了该文章 没有什么比缓慢的持续集成系统更令人沮丧的了。它减慢了反馈循环并阻止代码快速投入生产。虽然像使用性能更好的服务器可以为您争取时间&#xff0c;但您最终必须投资…

UG\NX CAM二次开发 获取当前加工导航器选中的对象数量和tag UF_UI_ONT_ask_selected_nodes

文章作者:代工 来源网站:NX CAM二次开发专栏 简介: UG\NX CAM二次开发 获取当前加工导航器选中的对象数量和tag UF_UI_ONT_ask_selected_nodes 效果: 代码: void MyClass::do_it() {//获取当前加工导航器选中的对象数量和TAGint count = 0;tag_t* objects = NULL…

stm32 - 中断

stm32 - 中断 概念中断向量表NVIC 嵌套中断向量控制器优先级 中断EXTI概念基本结构例子- 对射式红外传感器计次例子 - 旋转编码器 概念 stm32 支持的中断资源&#xff08;都属于外设&#xff09; EXTITIMADCUSARtSPII2C stm32支持的中断 内核中断 外设中断 中断通道与优先级 一…

物联网AI MicroPython传感器学习 之 噪音测量传感器

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; 一、产品简介 麦克风噪音测量传感器&#xff0c;通过单片机对信号的简单处理&#xff0c;可实环境音检测、声控开关这样的有趣实验。传感器模块仅占用一个IO口&#xff0c;通过电压强度&#xff08;mV&#…

IIS部署Flask

启用 CGI 安装wfastcgi pip install wfastcgi 启用 wfastcgi 首先以管理员身份运行wfastcgi-enable来在IIS上启用wfastcgi&#xff0c;这个命令位于c:\python_dir\scripts&#xff0c;也就是你需要确保此目录在系统的PATH里&#xff0c;或者你需要cd到这个目录后再执行。 #…

Node-RED系列教程-25node-red获取天气

安装节点:node-red-contrib-weather 节点图标如下: 使用说明:node-red-contrib-weather (node) - Node-RED 流程图中填写经度和纬度即可。 演示: json内容: {

Linux服务器报错“No space left on device”如何解决

一、错误的含义&#xff0c;说明在服务器设备上的存储空间已经满了&#xff0c;不能再上传或者新建文件夹或者文件等。 二、确认查看服务器系统的磁盘使用情况是否是真的已经没有剩余空间&#xff0c;复制下面命令在服务器上运行&#xff0c;然后发现如果如下图所示那么表明sda…

代码随想录算法训练营第23期day14|二叉树层序遍历、226.翻转二叉树、101. 对称二叉树

目录 一、二叉树层序遍历 非递归法 递归法 相关题目&#xff08;10题&#xff09; 二、&#xff08;leetcode 226&#xff09;翻转二叉树 递归法 层序遍历 深度优先遍历 1&#xff09;非统一写法——前序遍历 2&#xff09; 统一写法——前序遍历 三、&#xff08;le…

软件测试/测试开发丨App自动化测试-弹窗异常处理

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接&#xff1a;https://ceshiren.com/t/topic/27692 黑名单处理 运行过程中不定时弹框&#xff08;广告弹窗&#xff0c;升级提示框&#xff0c;新消息提示框等等&#xff09; 弹框不是 BUG&#xff0…

docker数据管理和网络通信

docker数据管理 管理 Docker 容器中数据主要有两种方式&#xff1a; 数据卷&#xff08;Data Volumes&#xff09;和数据卷容器&#xff08;DataVolumes Containers&#xff09;。 1&#xff0e;数据卷 数据卷是一个供容器使用的特殊目录&#xff0c;位于容器中。可将宿主机…