Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: WPF C# рисование линии  (Прочитано 14048 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Gor
Постоялец

ru
Offline Offline

« : 13-01-2022 13:42 » 

Доброе время суток!

Рисовать на канвасе у меня получается. Но вот как нарисовать именно прямую линию, которая всегда прямая рисуется, не выходит.
Не подскажите как это сделать?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 13-01-2022 13:47 » 

прямую линию, которая всегда прямая рисуется
а как это? Есть картинка?
Записан

Gor
Постоялец

ru
Offline Offline

« Ответ #2 : 13-01-2022 18:03 » 

Т.е. кликаем на канвасе мышью и ведем (не отпуская кн. мыши), например вниз, затем в сторону. Рисуется не кривая, а прямая линия, отпустили кн. мыши, на канвасе нарисована горизонтальная линия. Рисование примитивно прямой линии.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 13-01-2022 18:05 » 

Gor, при установке точек нужно учитывать только одну из координат, а другую фиксированно использовать равной той координате, которая была задана при нажатии кнопки
(на самом деле всё чуть сложнее, но для начала пойдёт)
Записан

Gor
Постоялец

ru
Offline Offline

« Ответ #4 : 14-01-2022 08:16 » 

Спасибо, только не понятно.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 14-01-2022 08:33 » 

Gor,
1) при нажатии кнопки мыши запоминаешь координату pos0
2) в обработчике движения определяешь расстояние dx и dy от текущей координаты курсора до pos0. По наибольшему смещению решаешь, какую линию сейчас проводят - вертикальную или горизонтальную. Соответственно, одна из координат берётся из pos0, а вторая - из текущей позиции курсора
3) после этого перерисовываешь окно (обработчик рисования выводит превью нужной линии)
4) при отпускании кнопки мыши - всё так же, как в пункте 2, только линию уже запоминаешь "насовсем", рисуешь постоянно, а не превью
Записан

Gor
Постоялец

ru
Offline Offline

« Ответ #6 : 19-01-2022 13:30 » new

А если надо 30 или 40 градусов? Под любым углом, но именно прямая!
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #7 : 20-01-2022 03:16 » 

Gor, вспоминаем геометрию, чертим на бумажке, потом реализуем в программе Улыбаюсь
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines