Рисование прямой линии, как в Paint - C#
Формулировка задачи:
Доброго всем времени суток.
Нужно в PictureBox нарисовать прямую линию. Рисовать надо как в Paint: зажал левую клавишу мыши, провел линию, отпустил. Но, надо еще чтобы координаты каждой точки этой линии сохранялись в массивы: координаты по Х в один, координаты по У в другой. У меня уже было куча идей, но все равно ничего не получалось. Линию рисует, а вот с координатами проблема.
Тонкости расчета координат рассматривались здесь http://www.cyberforum.ru/mathematics/thread85655-page2.html . Но это в основном была теоретическая часть... Может у кого-то есть определенные идеи по разрешению данной проблемы?
Буду очень благодарен всем, кто поможет.
Решение задачи: «Рисование прямой линии, как в Paint»
textual
Листинг программы
using System; using System.Drawing; using System.Windows.Forms; class Program { public static void Main() { Application.Run(new Form1()); } } class Form1 : Form { Bitmap bmp; Bitmap bmp2; Point StartPoint; Pen blackpen; public Form1() { FormBorderStyle = FormBorderStyle.FixedDialog; ClientSize = new Size(640, 480); blackpen = new Pen(Color.Black, 1); bmp = new Bitmap(640, 480); bmp2 = new Bitmap(640, 480); Graphics grph = Graphics.FromImage(bmp); grph.Clear(Color.White); } protected override void OnPaint(PaintEventArgs e) { //base.OnPaint(e); e.Graphics.DrawImage(bmp,0,0); } protected override void OnMouseDown(MouseEventArgs e) { //base.OnMouseDown(e); if (e.Button == MouseButtons.Left) StartPoint = e.Location; } protected override void OnMouseMove(MouseEventArgs e) { //base.OnMouseMove(e); if (e.Button == MouseButtons.Left) { Graphics grph = CreateGraphics(); Graphics grph2 = Graphics.FromImage(bmp2); grph2.DrawImage(bmp, 0, 0); grph2.DrawLine(blackpen, StartPoint, e.Location); grph.DrawImage(bmp2, 0, 0); grph.Dispose(); grph2.Dispose(); } } protected override void OnMouseUp(MouseEventArgs e) { //base.OnMouseUp(e); Graphics grph = Graphics.FromImage(bmp); grph.DrawLine(blackpen, StartPoint, e.Location); grph.Dispose(); Invalidate(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д