Шаг 186 - Координатное пространствo GDI

Встроенная по умолчанию система координат имеет точку в верхнем левом углу, ось X вправо а ось Y вниз.

gif/186_1.gif (1383 b)

Давайте попробуем нарисовать линию по координатам 0,0 - 100,100 все нормально.

gif/186_2.gif (2204 b)

Координатное пространство можно сдвигать.

//CSharp DotNet sample Code
using System;
using System.Windows.Forms;
using System.Drawing;


class MainForm : Form
{
	public MainForm()
	{
		Text = "This is my form";
	}
	
	protected override void OnPaint(PaintEventArgs pe) 
	{
		Graphics g = pe.Graphics;
		g.TranslateTransform(100, 50);
		Pen myPen = new Pen( Color.Red, 1 );
		g.DrawLine(myPen, 0,0,100,100);
	}

	public static void Main(string[] args)
	{
		Application.Run(new MainForm());
	}
}

Теперь наш центр координат находиться внутри формы.

gif/186_3.gif (2534 b)

Используя центр координат можно перемещать наш рисунок по экрану. Теперь при нажатии на мышку рисунок будет сдвигаться вниз.

// CSharp DotNet sample Code
using System;
using System.Windows.Forms;
using System.Drawing;


class MainForm : Form
{
	//......
	
	protected override void OnPaint(PaintEventArgs pe) 
	{
		Graphics g = pe.Graphics;
		g.TranslateTransform(100, x);
		Pen myPen = new Pen( Color.Red, 1 );
		g.DrawLine(myPen, 0,0,100,100);
	}

	protected override void OnMouseDown(MouseEventArgs e) 
	{
		x=x+10;
		Invalidate();
	}
	//......
}


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.