当前位置:网站首页>C#(三十四)之坐标变换
C#(三十四)之坐标变换
2022-07-20 23:23:00 【camellias_】
平移变换:
绘制矩形:第一个参数确定起始点,第二个参数确定尺寸
Rectangle rect = new Rectangle(new Point(20,20),new Size(120,130));
实例:
// 平移
private void button1_Click(object sender, EventArgs e)
{
// 绘制矩形
Rectangle rect = new Rectangle(new Point(20,20),new Size(120,130));
Graphics g = this.CreateGraphics();
// 画实心体
g.FillRectangle(Brushes.DarkBlue,rect);
// 平移代码:参数是确定平移之后的原点
g.TranslateTransform(150,120);
Pen pen = new Pen(Color.DarkBlue,3);
// 使用线画图
g.DrawRectangle(pen,rect);
g.ResetTransform(); // 绘图结束之后,坐标原点发生变化,想让其回到原始的原点,就会用到这句话
}
绘图结束之后,坐标原点发生变化,想让其回到原始的原点,就会用到这句话
g.ResetTransform();
平移代码:参数是确定平移之后的原点
g.TranslateTransform(150,120);
旋转变换:
实例:
// 旋转
private void button2_Click(object sender, EventArgs e)
{
// 绘制矩形
Rectangle rect = new Rectangle(new Point(120, 120), new Size(120, 130));
Graphics g = this.CreateGraphics();
// 画实心体
g.FillRectangle(Brushes.DarkBlue, rect);
// 旋转
g.RotateTransform(20);
Pen pen = new Pen(Color.Red, 3);
// 使用线画图
g.FillRectangle(Brushes.Red, rect);
//g.ResetTransform();
}
旋转代码:参数是旋转角度(0-90)
g.RotateTransform(20);
伸缩代码:
// 伸缩
private void button3_Click(object sender, EventArgs e)
{
// 绘制矩形
Rectangle rect = new Rectangle(new Point(120, 120), new Size(120, 130));
Graphics g = this.CreateGraphics();
// 画实心体
g.FillRectangle(Brushes.DarkBlue, rect);
// 旋转
g.ScaleTransform(5,1);
Pen pen = new Pen(Color.Red, 3);
// 使用线画图
g.FillRectangle(Brushes.Red, rect);
//g.ResetTransform();
}
伸缩代码:参数是x轴、Y轴的伸缩长度。
g.ScaleTransform(2,1)
测试使用全部代码:
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;
namespace zuobiao
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
// 平移
private void button1_Click(object sender, EventArgs e)
{
// 绘制矩形
Rectangle rect = new Rectangle(new Point(20,20),new Size(120,130));
Graphics g = this.CreateGraphics();
// 画实心体
g.FillRectangle(Brushes.DarkBlue,rect);
g.TranslateTransform(150,120);
Pen pen = new Pen(Color.DarkBlue,3);
// 使用线画图
g.DrawRectangle(pen,rect);
//g.ResetTransform();
}
// 旋转
private void button2_Click(object sender, EventArgs e)
{
// 绘制矩形
Rectangle rect = new Rectangle(new Point(120, 120), new Size(120, 130));
Graphics g = this.CreateGraphics();
// 画实心体
g.FillRectangle(Brushes.DarkBlue, rect);
// 旋转
g.RotateTransform(20);
Pen pen = new Pen(Color.Red, 3);
// 使用线画图
g.FillRectangle(Brushes.Red, rect);
//g.ResetTransform();
}
// 伸缩
private void button3_Click(object sender, EventArgs e)
{
// 绘制矩形
Rectangle rect = new Rectangle(new Point(120, 120), new Size(120, 130));
Graphics g = this.CreateGraphics();
// 画实心体
g.FillRectangle(Brushes.DarkBlue, rect);
// 旋转
g.ScaleTransform(2f,3f);
Pen pen = new Pen(Color.Red, 3);
// 使用线画图
g.FillRectangle(Brushes.Red, rect);
//g.ResetTransform();
}
}
}
有好的建议,请在下方输入你的评论。
欢迎访问个人博客
https://guanchao.site
欢迎访问小程序:
边栏推荐
- 面试题 02.05. 链表求和
- Outofmemoryerror troubleshooting of memory overflow
- 遍历文件夹以及子文件夹的图片,利用opencv改变大小并保存直一个文件夹
- Time related operations commonly used in MySQL
- 30岁被公司裁员,有人从此一蹶不振,而我逆风翻盘,重获新生~
- 复杂链表的复制
- Ccs3 comprehensive experiment -- stylesheet file -- design a menu page
- Practice - how many threads are appropriate to create
- 我用Redis分布式锁,抢了瓶茅台,然后GG了~~
- 最全最新方法:Electron开发中设置a标签的href跳转默认浏览器打开链接
猜你喜欢
三级调度之间的联系及区别
进程的组织方式:链接方式和索引方式
[基础架构] [Flink] Flink/Flink-CDC代码实现业务接入
Work experience summary 1
ONEFLOW V0.8.0 officially released
MySQL multi line data synthesis one line function group_ CONCAT
IP第十一天笔记
如何用度量数据驱动代码评审的改善
SAP Fiori topic 2: using webide to build Fiori with navigation bar
SAP FIORI专题之二:用webide构建带导航栏的fiori
随机推荐
Interview must ask, how to ensure the idempotency of the interface?
思科配置单臂路由的实际案例,很简单
YOLOv5改进之二:添加CBAM注意力机制
Ultra simple three tube inductive brushless three-phase motor drive board
华为无线设备配置Airtime调度
管程 的相关内容
Replication of complex linked list
MySQL多行数据合成一行函数GROUP_CONCAT
[基础架构] [Flink] Flink/Flink-CDC代码实现业务接入
Cmake Quick Guide
带你认识一下数仓的分区自动管理
Self signed San certificate
Regression prediction analysis of jujube genetics based on support vector machine
Jmeter-正则、xpath、JSON
最全最新方法:Electron开发中设置a标签的href跳转默认浏览器打开链接
Time series analysis of port berths during Arima epidemic
进程的组织方式:链接方式和索引方式
Power BI----让报表更美观之切片器
有了线程后,发生的变化
解决Metasploit中shell乱码的问题