Как нарисовать линию в c visual studio
Рисование простых линий на форме или элементах управления и печать этих линий
Листинг 5.1. Код для рисования прямой линии.
private void Form1_Paint(object sender, PaintEventArgs e)
//Задаем цвет и толщину пера:
Pen myPen = new Pen(Color.Black, 3);
e.Graphics.DrawLine(myPen, 10, 15, 100, 120);
//Высвобождаем память, выделенную объекту myPen:
Листинг 5.2. Код для рисования кривых линий.
private void Form1_Paint(object sender, PaintEventArgs e)
//Задаем цвет и толщину пера:
Pen myPen = new Pen(Color.Black, 3);
//Рисуем эллипс лица:
e.Graphics.DrawEllipse(myPen, 0, 0, 200, 220);
//Рисуем закрытый глаз как дугу:
e.Graphics.DrawArc(myPen, 35, 35, 35, 35, 180, -180);
//Рисуем открытый глаз как эллипс:
e.Graphics.DrawEllipse(myPen, 120, 35, 35, 35);
//Рисуем нос как линию (сплайн) Безье:
e.Graphics.DrawBezier(myPen, 100, 60, 120, 100,
//Рисуем рот как канонический сплайн:
Point[] apt = new Point[4];
apt[0] = new Point(60, 140);
apt[1] = new Point(140, 140);
apt[2] = new Point(100, 180);
apt[3] = new Point(60, 140);
e.Graphics.DrawCurve(myPen, apt, 0, 3, 0.9f);
//Высвобождаем память, выделенную объекту myPen:
private void button1_Click(object sender, EventArgs e)
//Передаем объекту printDialog1 информацию об объекте
//printDocument1 при помощи свойства Document:
//Выводим стандартную панель Print при помощи метода
//ShowDialog() для задания параметров печати
//и после щелчка OK на панели Print печатаем документ
//при помощи метода Print():
if (printDialog1.ShowDialog() == DialogResult.OK)
Листинг 5.4. Код на Visual Basic для печати изображения на принтере.
Private Sub Button3_Click(ByVal sender As System.Object, _
ByVal e As EventArgs) Handles Button3.Click
'Передаем объекту PrintDialog1 информацию об объекте
'PrintDocument1 при помощи свойства Document:
'Выводим панель Print при помощи функции ShowDialog
'для задания параметров и вызываем процедуру Print():
If PrintDialog1.ShowDialog() = DialogResult.OK Then
Листинг 5.5. Код на прежнем Visual C++ (2002-2004 годов) для печати.
System::Void button3_Click(System::Object * sender,
//Передаем объекту printDialog1 информацию об объекте
//printDocument1 при помощи свойства Document:
//Выводим стандартную панель Print при помощи метода
//ShowDialog() для задания параметров печати
//и печатаем документ после щелчка OK на панели Print
//при помощи метода Print():
if (printDialog1->ShowDialog() == DialogResult::OK)
Листинг 5.6. Код на новом Visual C++ 2005 для печати изображения.
System::Void button3_Click(System::Object^ sender,
//Передаем объекту printDialog1 информацию об объекте
//printDocument1 при помощи свойства Document:
//Выводим стандартную панель Print при помощи метода
//ShowDialog() для задания параметров печати
//и печатаем документ при помощи метода Print():
Если мы не желаем видеть перед печатью стандартную панель Print, то компонент PrintDialog нам не потребуется, а в шаблон обработчика щелчка по кнопке вместо кода на листинге 5.3 записываем только одну строку кода:
Проверяем в действии созданную нами программу для печати на принтере любых изображений. Для этого получаем на экране монитора (по описанной выше методике) заданное изображение и щелкаем кнопку Print.
Появляется стандартная панель Print (рис. 5.5), на которой мы выбираем (или оставляем по умолчанию) принтер и задаем параметры печати. Например, можно изменить ориентацию печати и вместо Portrait (Портрет) выбрать переключатель Landscape (Ландшафт). После щелчка кнопки Печать (Print) или OK принтер печатает только одно изображение без формы и элементов управления.
нарисовать линию на панели
вот я открыл панель курса валют как мне нарисовать линию из одной точки в другую
Нарисовать линию по нажатию на панель
int peremX1; int peremY1; int peremX2; int peremY2; private.
GDI+ нарисовать моргающую линию
Как в GDI+ нарисовать моргающую линию?
Как нарисовать пунктирную линию?
Приветствую всех! Подскажите, пожалуйста, почему у меня не получается пунктирная линия (2.
Решение
Добавлено через 53 секундыЧтобы рисовать в ограниченном пространстве используй элемент Panel.
Добавлено через 1 минуту
ага, пока писала уже ответили
добавить нужно компонент поддерживающий изображения (panel, pictureBox и т.п.) kirill29, а как вызывается метод Form1_Paint? где? В окне Properties вверху щелкните мышкой по знаку молнии(события), в списке найдете Paint, и двойным щелчком по соседнем пустому полю. Тем самым создасться данное событие. отлично! Всем спасибо за оперативный ответ!
конечно последнее могла бы и сама догадаться попробуй использовать using чтобы не нужно было освобождать ресурсы вручную
Как нарисовать на форме линию?
Приветствую! Можно ли добавить в область "Toolbox" элемент управления для рисования линии? Что я.
Как нарисовать линию на изображении
Есть рисунок (200х200), как можно нарисовать на нем линию? Dim imnn As Bitmap . imnn =.
Как нарисовать линию в форме?
как нарисовать линию в windows form application c++. пробовал та: . LineTo(x,y); - не.
Как нарисовать линию на форме?
Казалось бы простой вопрос, но я начинающий. Хэлп плиз)))
Как нарисовать непрерывную линию
При наведении мышки на pictureBox рисуется прерывистая линия ,т.е. точками линия рисуется.
Нужно нарисовать линию в PictureBox. Причём нельзя пользоваться событием OnPaint объекта PictureBox из-за специфических условий решаемой задачи.
Я этот код нашёл в нижке. Он не работает. Мне собственно понятно почему: не указано где надо рисовать. Только как указать что надо рисовать в PictureBox и как там нарисовать эту линию при клике я не знаю. Ещё раз напомню что не надо пользоваться событием Paint объекта PictureBox. Без него надо сделать. Подскажите плиз __________________Помощь в написании контрольных, курсовых и дипломных работ здесь
Как нарисовать линию в PictureBox
Здравствуйте, подскажите, не могу найти инфу, о том как нарисовать в PictureBox линию Нужно, чтобы.
Вывести линию в PictureBox
Здравствуйте, почему данный код не выводит линию в pictureBox1? using System; using.
Стереть нарисованную линию в PictureBox
мне надо сделать вращении линии. Хочу реализовать это таким способом: рисую новую линию, а старую.
Нарисовать линию на Panel
На форме находится панель, требуется нарисовать на панельке хотя бы линию в функции пейт.
Задача. Провести рисование после клика по кнопке. Только ПОСЛЕ КЛИКА.
Почему у меня с if не работает, а без if работает. почему условие не выполняется?
Решение
Всё выполняется, просто Вы не обновляете pictureBox1: Нарисовать градиентную линию
Не могу придумать прорисовку линии их двух цветов, т.е от одного оттенка плавный переход до.
Нарисовать и переместить линию
Люди добрые помогите! Разработать приложение позволяющее с помощью командных кнопок (вверх вниз.
Не могу нарисовать линию
Вот код private void Form1_Paint(object sender, PaintEventArgs e) < Pen pen.
Нарисовать линию в picture_box
Подскажите, пожалуйста, пытаюсь нарисовать линию private void pic_move(object sender.
Нужно нарисовать линию в picturbox
Проблема в том. есть точка А(0,0), нужно найти точку В, если знаем только угол. проще говоря нужно.
БлогNot. Visual C++/CLI: рисуем линию на PictureBox "как в Paint"
Visual C++/CLI: рисуем линию на PictureBox "как в Paint"
То есть, при движении мыши с зажатой кнопкой линия должна динамически обновляться, а при отпускании кнопки добавляться на существующий рисунок. Так как PictureBox удобно сохранять и легко снабдить полосами прокрутки, будем рисовать на ней. Компонента может быть частью интерфейса приложения как в этой заметке или растянутой на всю форму. Проект создан как приложение Windows Forms, код проверен в Visual Studio 2015.
Для самой формы нам понадобится запрограммировать только событие Load , где мы инициализируем всё, что нужно - создадим рисунок по текущим размерам PictureBox , назначим его компоненте, создадим перо и выставим в "ложь" флажок:
Ещё лучше было создать рисунок размером с клиентскую часть окна формы:
Всё остальное запрограммируем в событиях PictureBox . На нажатие кнопки мыши будем включать флажок и запоминать место клика p1 :
На отпускание кнопки получим координаты второй точки p2 и соединим её с первой, проведя линию на образе Img1 . В реальном коде можно добавлять точки в какой-то контейнер, например, в список как здесь.
На перемещение мыши обработка будет немного хитрей. Если кнопка не зажата, ничего делать не нужно, а в противном случае будем проводить текущую линию на копии рисунка Img2 , созданной из Img1 , чтобы не получилось "веера" из линий при перемещении мыши с зажатой кнопкой. Img2 всё равно придётся временно назначить рисунком для PictureBox , чтобы линия была видна в процессе движения мыши.
Это всё, приложение можно собирать.
P.S. Здесь у нас все координаты были "внутри PictureBox " и получались непосредственно из аргумента MouseEventArgs обработчика события. По-другому можно делать так:
К сожалению, из-за плохой "очистки мусора" (а мы создаём каждый раз временную копию рисунка при движении мыши с зажатой кнопкой) такое приложение может быстро пожирать память.
Можно, конечно, ввести ещё список "тип фигуры" и рисовать другие объекты.
Если хотим рисовать просто карандашом "по точкам", можно применять и подход с таймером (код для той же формы):
Читайте также: