实例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

相关文章

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

java String.join()方法实例详解

《javaString.join()方法实例详解》String.join()是Java提供的一个实用方法,用于将多个字符串按照指定的分隔符连接成一个字符串,这一方法是Java8中引入的,极大地简化了... 目录bVARxMJava String.join() 方法详解1. 方法定义2. 基本用法2.1 拼接

Linux lvm实例之如何创建一个专用于MySQL数据存储的LVM卷组

《Linuxlvm实例之如何创建一个专用于MySQL数据存储的LVM卷组》:本文主要介绍使用Linux创建一个专用于MySQL数据存储的LVM卷组的实例,具有很好的参考价值,希望对大家有所帮助,... 目录在Centos 7上创建卷China编程组并配置mysql数据目录1. 检查现有磁盘2. 创建物理卷3. 创

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Java List排序实例代码详解

《JavaList排序实例代码详解》:本文主要介绍JavaList排序的相关资料,Java排序方法包括自然排序、自定义排序、Lambda简化及多条件排序,实现灵活且代码简洁,文中通过代码介绍的... 目录一、自然排序二、自定义排序规则三、使用 Lambda 表达式简化 Comparator四、多条件排序五、

Java实例化对象的​7种方式详解

《Java实例化对象的​7种方式详解》在Java中,实例化对象的方式有多种,具体取决于场景需求和设计模式,本文整理了7种常用的方法,文中的示例代码讲解详细,有需要的可以了解下... 目录1. ​new 关键字(直接构造)​2. ​反射(Reflection)​​3. ​克隆(Clone)​​4. ​反序列化

QT6中绘制UI的两种方法详解与示例代码

《QT6中绘制UI的两种方法详解与示例代码》Qt6提供了两种主要的UI绘制技术:​​QML(QtMeta-ObjectLanguage)​​和​​C++Widgets​​,这两种技术各有优势,适用于不... 目录一、QML 技术详解1.1 QML 简介1.2 QML 的核心概念1.3 QML 示例:简单按钮

Java使用WebView实现桌面程序的技术指南

《Java使用WebView实现桌面程序的技术指南》在现代软件开发中,许多应用需要在桌面程序中嵌入Web页面,例如,你可能需要在Java桌面应用中嵌入一部分Web前端,或者加载一个HTML5界面以增强... 目录1、简述2、WebView 特点3、搭建 WebView 示例3.1 添加 JavaFX 依赖3