实例118-绘图技术-绘制公章

2023-11-06 06:20

本文主要是介绍实例118-绘图技术-绘制公章,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本节描述绘图中的公章的绘制。

本例程序下载地址:https://download.csdn.net/download/chongxing01/12266063

公章图片如下:

这个项目所要应用的技术如下:

1.在画板中绘制文本,如图中的“专用章”。

2.在画板中绘制圆形,如图中的圆。

3.旋转并移动坐标系,绘制文本,如图中的文本“C#绘图技术之绘图专用章”,逐个文本旋转绘制。

       private void button1_Click(object sender, EventArgs e){int tem_Line = 0;//记录圆的直径int circularity_W = 4;//设置圆画笔的粗细Var_Font = new Font("Arial", center_r/12, FontStyle.Bold);//定义字符串的字体样式tem_Line = center_r;rect = new Rectangle(circularity_W, circularity_W, tem_Line - circularity_W * 2, tem_Line - circularity_W * 2);//设置圆的绘制区域Font star_Font = new Font("Arial", center_r/4, FontStyle.Regular);//设置星号的字体样式string star_Str = "★";Graphics g = this.panel1.CreateGraphics();//实例化Graphics类g.SmoothingMode = SmoothingMode.AntiAlias;//消除绘制图形的锯齿g.Clear(Color.White);//以白色清空panel1控件的背景Pen myPen = new Pen(Color.Red, circularity_W);//设置画笔的颜色g.DrawEllipse(myPen, rect); //绘制圆 SizeF Var_Size = new SizeF(rect.Width, rect.Width);//实例化SizeF类Var_Size = g.MeasureString(star_Str, star_Font);//对指定字符串进行测量//要指定的位置绘制星号g.DrawString(star_Str, star_Font, myPen.Brush, new PointF((rect.Width / 2F) + circularity_W - Var_Size.Width / 2F, rect.Height / 2F - Var_Size.Width / 2F));Var_Size = g.MeasureString("专用章", Var_Font);//对指定字符串进行测量//绘制文字g.DrawString("专用章", Var_Font, myPen.Brush, new PointF((rect.Width / 2F) + circularity_W - Var_Size.Width / 2F, rect.Height / 2F + Var_Size.Height * 2));string tempStr = "C#绘图技术之绘制专用章";int len = tempStr.Length;//获取字符串的长度float angle = 180 + (180 - len * 20) / 2;//设置文字的旋转角度for (int i = 0; i < len; i++)//将文字以指定的弧度进行绘制{//将指定的平移添加到g的变换矩阵前g.TranslateTransform((tem_Line + circularity_W / 2) / 2 + (float)(Math.Cos(angle * Math.PI / 180) * tem_Line/2.3),(tem_Line + circularity_W / 2) / 2 + (float)(Math.Sin(angle * Math.PI / 180) * tem_Line/2.3));g.RotateTransform(angle+90);//将指定的旋转用于g的变换矩阵   Brush myBrush = Brushes.Red;//定义画刷g.DrawString(tempStr.Substring(i, 1), Var_Font, myBrush, 0, 0);//显示旋转文字g.ResetTransform();//将g的全局变换矩阵重置为单位矩阵angle += 20;//设置下一个文字的角度}}

具体参考注释!

 

这篇关于实例118-绘图技术-绘制公章的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/354924

相关文章

Nginx服务器部署详细代码实例

《Nginx服务器部署详细代码实例》Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,:本文主要介绍Nginx服务器部署的相关资料,文中通过代码... 目录Nginx 服务器SSL/TLS 配置动态脚本反向代理总结Nginx 服务器Nginx是一个‌高性

Python使用Matplotlib和Seaborn绘制常用图表的技巧

《Python使用Matplotlib和Seaborn绘制常用图表的技巧》Python作为数据科学领域的明星语言,拥有强大且丰富的可视化库,其中最著名的莫过于Matplotlib和Seaborn,本篇... 目录1. 引言:数据可视化的力量2. 前置知识与环境准备2.1. 必备知识2.2. 安装所需库2.3

Go异常处理、泛型和文件操作实例代码

《Go异常处理、泛型和文件操作实例代码》Go语言的异常处理机制与传统的面向对象语言(如Java、C#)所使用的try-catch结构有所不同,它采用了自己独特的设计理念和方法,:本文主要介绍Go异... 目录一:异常处理常见的异常处理向上抛中断程序恢复程序二:泛型泛型函数泛型结构体泛型切片泛型 map三:文

使用Python在PDF中绘制多种图形的操作示例

《使用Python在PDF中绘制多种图形的操作示例》在进行PDF自动化处理时,人们往往首先想到的是文本生成、图片嵌入或表格绘制等常规需求,然而在许多实际业务场景中,能够在PDF中灵活绘制图形同样至关重... 目录1. 环境准备2. 创建 PDF 文档与页面3. 在 PDF 中绘制不同类型的图形python

python协程实现高并发的技术详解

《python协程实现高并发的技术详解》协程是实现高并发的一种非常高效的方式,特别适合处理大量I/O操作的场景,本文我们将简单介绍python协程实现高并发的相关方法,需要的小伙伴可以了解下... 目录核心概念与简单示例高并发实践:网络请求协程如何实现高并发:核心技术协作式多任务与事件循环非阻塞I/O与连接

springboot+mybatis一对多查询+懒加载实例

《springboot+mybatis一对多查询+懒加载实例》文章介绍了如何在SpringBoot和MyBatis中实现一对多查询的懒加载,通过配置MyBatis的`fetchType`属性,可以全局... 目录springboot+myBATis一对多查询+懒加载parent相关代码child 相关代码懒

C++中的解释器模式实例详解

《C++中的解释器模式实例详解》这篇文章总结了C++标准库中的算法分类,还介绍了sort和stable_sort的区别,以及remove和erase的结合使用,结合实例代码给大家介绍的非常详细,感兴趣... 目录1、非修改序列算法1.1 find 和 find_if1.2 count 和 count_if1

MySQL中如何求平均值常见实例(AVG函数详解)

《MySQL中如何求平均值常见实例(AVG函数详解)》MySQLavg()是一个聚合函数,用于返回各种记录中表达式的平均值,:本文主要介绍MySQL中用AVG函数如何求平均值的相关资料,文中通过代... 目录前言一、基本语法二、示例讲解1. 计算全表平均分2. 计算某门课程的平均分(例如:Math)三、结合

Python绘制TSP、VRP问题求解结果图全过程

《Python绘制TSP、VRP问题求解结果图全过程》本文介绍用Python绘制TSP和VRP问题的静态与动态结果图,静态图展示路径,动态图通过matplotlib.animation模块实现动画效果... 目录一、静态图二、动态图总结【代码】python绘制TSP、VRP问题求解结果图(包含静态图与动态图

Java中的Schema校验技术与实践示例详解

《Java中的Schema校验技术与实践示例详解》本主题详细介绍了在Java环境下进行XMLSchema和JSONSchema校验的方法,包括使用JAXP、JAXB以及专门的JSON校验库等技术,本文... 目录1. XML和jsON的Schema校验概念1.1 XML和JSON校验的必要性1.2 Sche