0 / 0 / 0
Регистрация: 10.12.2016
Сообщений: 13
1

Рисование мышкой с пробелами

04.11.2017, 15:19. Показов 1514. Ответов 3
Метки нет (Все метки)

Когда на PictureBox вожу мышкой медленно, линия не прерывается, а когда быстро, появляются пробелы.
Помогите пожалуйста исправить, уже все перепробовала
На всякий случай кидаю файл)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
 
            Pen p = new Pen(y, 2);
            SolidBrush br = new SolidBrush(y);
            Point prevLocMouse = new Point(e.X, e.Y);
            Graphics gr;
            if (flag)
            {
                pictureBox1.BackColor = Color.White;
                pictureBox1.Image = SrcImg;
                gr = Graphics.FromImage(pictureBox1.Image);
                //gr = pictureBox1.CreateGraphics();
                gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                gr.FillRectangle(br, e.X, e.Y, trackBar1.Value, trackBar1.Value);
                Point mousePos = new Point(e.X, e.Y);
                gr.DrawLine(p, mousePos, prevLocMouse);
                prevLocMouse = mousePos;
                SrcImg = new Bitmap(pictureBox1.Image, pictureBox1.Width, pictureBox1.Height);
            }
        }
 
        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            flag = true;            
        }
 
        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            flag = false;
        }
Вложения
Тип файла: rar WindowsFormsApplication1 - попытки сделать.rar (88.8 Кб, 9 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2017, 15:19
Ответы с готовыми решениями:

Рисование кистью: если движение мышки быстрое, то линия получается с пробелами
Осваиваю рисование в С#, проблема с рисованием кистью. Вот пишу программу, всё работает, но есть 1...

Рисование Рисование точек по координатам
Доброе время суток. Помогите мне наглядным примером. У меня есть массив координат a х у 1 2 3...

Рисование мышкой Qt
Привет всем. Осваиваю Qt и возник вопрос, как нарисовать мышкой прямую линию (как инструмент...

Рисование мышкой
Рисование мышкой закрашенного прямоугольника на Image.

3
8925 / 4837 / 1885
Регистрация: 11.02.2013
Сообщений: 10,246
04.11.2017, 16:19 2
Лучший ответ Сообщение было отмечено Алишка97 как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public partial class Form1 : Form
{
    private static Pen pen = new Pen(Color.Blue, 2);
    private static List<Point> points = new List<Point>();
    public Form1()
    {
        InitializeComponent();
    }
 
    private void pictureBox1_Paint(object sender, PaintEventArgs e)
    {
        if (points == null || points.Count == 0)
        {
            return;
        }
        e.Graphics.DrawCurve(pen, points.ToArray());
    }
 
    private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
    {
        points.Clear();
        points.Add(e.Location);
    }
 
    private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    {
        if (e.Button!=MouseButtons.Left)
        {
            return;
        }
        points.Add(e.Location);
        if (points.Count > 2)
        {
            pictureBox1.Refresh();
        }
    }
 
    private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
    {
        points.Add(e.Location);
        if (points.Count > 2)
        {
            pictureBox1.Refresh();
        }
    }
}
1
0 / 0 / 0
Регистрация: 10.12.2016
Сообщений: 13
04.11.2017, 20:21  [ТС] 3
А как сделать, чтобы линия не перерисовывалась, когда я отпускаю клавишу мыши (новая рисуется)?

Добавлено через 11 минут
И чтобы цвет можно было выбирать из colorDialog)

Добавлено через 4 минуты
Теперь trackBar не работает(((

Добавлено через 3 часа 22 минуты
Почти все перестало работать: сохранение, очищение((
0
8925 / 4837 / 1885
Регистрация: 11.02.2013
Сообщений: 10,246
04.11.2017, 21:13 4
Алишка97, ты что, просто заменила код своей формы моим? Я же привёл пример, как это можно сделать. Тебе нужно адаптировать его под свои задачи
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.11.2017, 21:13
Помогаю со студенческими работами здесь

Рисование круга мышкой
Мне нужно нарисовать окружность мышкой. растянуть ее от левой верхней до правой нижней точки. ...

Рисование квадратов мышкой
Добрый день! Есть программка позволяющая рисовать квадраты, только проблема в том, что она не...

Рисование многоугольника мышкой
Доброго дня! Пишу лабу, задание - чтобы можно было рисовать геометрические фигуры мышкой. Прямую,...

Рисование на PictureBox мышкой
Товарищи программисты такая задача для умных.рисование на PictureBox с помощью мышки... То есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru