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轴进行反转,此时的坐标系就是我们数学中的坐标系了。