C# 绘图

1.自定义控件

创建的项目为Windows窗体控件库。

2.绘图是在控件的Paint事件中进行,也可以通过重写Onpaint方法。

3.默认的(0,0)点是在屏幕的左上角,如何实现自定义坐标轴(位于画布中心)

 protected override void OnPaint(PaintEventArgs e)
 {
     base.OnPaint(e);
     Graphics g = e.Graphics;
     //将缩放矩阵应用于绘图对象
     g.Transform = zoomMatrix;
     // 设置线条宽度,根据缩放矩阵计算线条宽度
     float lineWidth = 1.0f / zoomMatrix.Elements[0];
     Pen pen = new Pen(Color.Blue, lineWidth);
     //绘制坐标轴,刻度,刻度值
     DrawXY(g);
     //将坐标系平移至画布中心
     g.TranslateTransform(centerX, centerY);
     //翻转Y轴
     g.ScaleTransform(1, -1);
}

具体思路就是,

(1)先绘制坐标轴

(2)然后使用 g.TranslateTransform(centerX, centerY);将原点平移至画布中心,但此时Y轴的正方向是朝下的

(3)使用g.ScaleTransform(1, -1);将Y轴进行反转,此时的坐标系就是我们数学中的坐标系了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值