绘制圆角矩形(方法 )
/* sharecodes.org 友情提醒:尊重知识,转载请注明原创作者、出处!
*/ /// <summary>
/// C# GDI+ 绘制圆角矩形
/// </summary>
/// <param name="g">Graphics 对象</param>
/// <param name="rectangle">Rectangle 对象,圆角矩形区域</param>
/// <param name="borderColor">边框颜色</param>
/// <param name="borderWidth">边框宽度</param>
/// <param name="r">圆角半径</param>
public static void DrawRoundRectangle(Graphics g, Rectangle rectangle, Color borderColor, float borderWidth, int r)
{ // 如要使边缘平滑,请取消下行的注释 // g.SmoothingMode = SmoothingMode.HighQuality; // 由于边框也需要一定宽度,需要对矩形进行修正 rectangle = new Rectangle(rectangle.X, rectangle.Y, rectangle.Width - 1, rectangle.Height - 1); Pen p = new Pen(borderColor, borderWidth); // 调用 getRoundRectangle 得到圆角矩形的路径,然后再进行绘制 g.DrawPath(p, getRoundRectangle(rectangle, r));
} /// <summary>
/// 根据普通矩形得到圆角矩形的路径
/// </summary>
/// <param name="rectangle">原始矩形</param>
/// <param name="r">半径</param>
/// <returns>图形路径</returns>
private static GraphicsPath getRoundRectangle(Rectangle rectangle, int r)
{ int l = 2 * r; // 把圆角矩形分成八段直线、弧的组合,依次加到路径中 GraphicsPath gp = new GraphicsPath(); gp.AddLine(new Point(rectangle.X + r, rectangle.Y), new Point(rectangle.Right - r, rectangle.Y)); gp.AddArc(new Rectangle(rectangle.Right - l, rectangle.Y, l, l), 270F, 90F); gp.AddLine(new Point(rectangle.Right, rectangle.Y + r), new Point(rectangle.Right, rectangle.Bottom - r)); gp.AddArc(new Rectangle(rectangle.Right - l, rectangle.Bottom - l, l, l), 0F, 90F); gp.AddLine(new Point(rectangle.Right - r, rectangle.Bottom), new Point(rectangle.X + r, rectangle.Bottom)); gp.AddArc(new Rectangle(rectangle.X, rectangle.Bottom - l, l, l), 90F, 90F); gp.AddLine(new Point(rectangle.X, rectangle.Bottom - r), new Point(rectangle.X, rectangle.Y + r)); gp.AddArc(new Rectangle(rectangle.X, rectangle.Y, l, l), 180F, 90F); return gp;
}
/* sharecodes.org 友情提醒:尊重知识,转载请注明原创作者、出处!
*/ // 在 Form 上放置一 Panel,命名为 panel1,调用绘图方法
DrawRoundRectangle(panel1.CreateGraphics(), new Rectangle(10, 10, 100, 80), ColorTranslator.FromHtml("#CCFF66"), 4F, 20);
DrawRoundRectangle(panel1.CreateGraphics(), new Rectangle(120, 10, 100, 80), ColorTranslator.FromHtml("#FF66FF"), 4F, 20);
DrawRoundRectangle(panel1.CreateGraphics(), new Rectangle(240, 10, 100, 80), ColorTranslator.FromHtml("#6699FF"), 4F, 20);
绘制圆角矩形(方法 )相关推荐
- php 绘制圆角矩形,快速绘制圆角矩形的三种方法 - 行业动态 - 济南新视觉实训基地-平面UI设计PS培训,室内设计,web前端,影视3D动画后期制作培训...
圆角矩形可谓是UI设计中,我们最常见到的元素之一了,通过圆角矩形工具去绘制的圆角过于普通,且略显呆板,缺少吸引力.今天新视觉实训就给大家分享三种绘制圆角矩形的方法,让我们在千篇一律的圆角矩形中找寻一些 ...
- android绘制圆角矩形
android中可以绘制圆角矩形. 1.利用画布cavas绘制 如果提供了一个方法可以在画布上绘制圆角矩形: 函数名称:public void drawRoundRect (RectF rect, f ...
- JavaScript 使用canvas绘制圆角矩形边框
目录 分析 完整代码如下 前言 在react项目中需要用到绘制矩形填充, 因为直角矩形不够美观, 需要绘制圆角填充矩形 分析 Canvas并没有提供绘制圆角矩形的方法,但是通过观察,我们可以发现,其实 ...
- GDI+绘制圆角矩形
1.最近,用到GDI+绘图,但是发现没有绘制圆角矩形的函数,故自己写了一个.下面贴出原理和代码,以作备份. 2.要绘制圆角矩形,基础是普通的直角矩形,需要做的就是将直角画成弧形. 3.绘制圆角矩形可以 ...
- 咸鱼菌CAD实战—绘制圆角矩形
咸鱼菌CAD实战-绘制圆角矩形 设计中一般使用圆角使产品看起来更舒服一些,今天我们来绘制一个圆角矩形. 方法如下: 绘制矩形 使用快捷键F,进入倒圆角工具.或者在工具栏中选择倒圆角工具 按R键进入半径 ...
- 微信小程序使用canvas绘制圆角矩形在Android:变形、锯齿
这两天用小程序实现分享生成海报,那我的手机测的一直没问题,结果后来用同事的小米测发现:画的图形缺个角,锯齿形的,根据小程序社区回复:使用ctx.arc + ctx.lineTo就能避免Android错 ...
- canvas绘图,绘制圆角矩形。圆角线条。圆形头像
//绘制圆角矩形 //x.x坐标,y,y轴坐标.width宽 height高 radius圆角(一定不能大于height的一半,否则不显示) fillColor填充颜色.borderColor线 ...
- 在Android中绘制圆角矩形图片
圆角矩形图片在苹果的产品中很流行,相比于普通的矩形,很多人都喜欢圆角矩形的图片,下面在Android中实现将普通的矩形图片绘制成圆角矩形. 先来看一下普通矩形图片的显示,代码很简单,从r ...
- HTML5 JS Canvas利用贝塞尔曲线绘制圆角矩形
啥也不说,先上示例代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
最新文章
- 用composer安装laravel-bjyblog
- 辨别 Windows CE, Windows XP Embedded 和 Windows Mobile
- 好程序员三期Android高端班开班典礼-乱世看我称雄
- python第三方库排行-140种Python标准库、第三方库和外部工具
- Vim-复制选中内容至系统剪贴板,光标移动到指定行的行首和行尾
- sql中left join后用on还是where
- Mysql(三)——(cmd)数据库的命令操作
- 自己制作精美的App Store 软件截屏
- android 设备连接,Android安卓设备连接Mac的方法
- python product函数
- vue 音频文件打包后找不到文件
- 程序流程图的基本画法大全
- Go 编程语言官方文档中文版和官方教程中文版
- 需求分析-4 用例分析
- hl uoj1841 走格子
- 这六大方法,如何让 Transformer 轻松应对高难度长文本序列?
- SystemUI原生信号塔替换为五格信号塔
- 大数据实战【千亿级数仓】阶段三
- 网络安全之手机安全使用手册
- 计算机cpu损坏,电脑cpu怎么样会坏掉啊
热门文章
- 如何将jpg等格式的图片转化为yuv
- android下查看内存阀值限制
- ssh报user not allowed because account is locked错误
- 工作2年想从实施转开发还来的急吗?
- python open报错:‘gbk‘ codec can‘t decode byte 0xbd in position xxxx: illegal multibyte sequence
- 哪些情况下会被银行拒贷?买房真的凑齐首付就够了吗?
- 基于java的药店药品进销存管理系统
- 八门神器java_【修改教程】Java 运算符的说明_八门神器
- 创业开公司必备的100个注意事项
- 「 C++ 11」std::thread “invalid use of non-static member function“问题处理