Графика. Карандаш

   
На этом шаге мы рассмотрим особенности использования карандаша.

   
Карандаш определяет вид линии - цвет, толщину и стиль. В распоряжении программиста есть два набора карандашей: стандартный и системный. Также программист может создать собственный карандаш.

   
Стандартный набор карандашей - это цветные карандаши (всего их 141), которые рисуют непрерывную линию толщиной в один пиксель. Некоторые карандаши из стандартного набора приведены в таблице 1.

Таблица 1. Некоторые карандаши из стандартного набора

КарандашЦвет
Pens::RedКрасный
Pens::OrangeОранжевый
Pens::YellowЖелтый
Pens::GreenЗеленый
Pens::LightBlueГолубой
Pens::BlueСиний
Pens::PurpleПурпурный
Pens::BlackЧерный
Pens::LightGrayСерый
Pens::WhiteБелый
Pens::TransparentПрозрачный

   
Системный набор карандашей - это карандаши, цвет которых определяется текущей цветовой схемой операционной системы и совпадает с цветом какого-либо элемента интерфейса пользователя. Например,
цвет карандаша SystemPens::ControlText совпадает с цветом, который в текущей цветовой схеме используется для отображения текста на элементах управления (командных кнопках и др.), а цвет карандаша
SystemPens::WindowText - с цветом текста в окнах сообщений.

   
Карандаш из стандартного (Pens) и системного (SystemPens) наборов рисует непрерывную линию толщиной в один пиксель. Если надо нарисовать пунктирную линию или линию толщиной больше единицы,
то следует использовать карандаш программиста.

   
Карандаш программиста - это объект типа Pen, свойства которого (таблица 2) определяют вид линии, рисуемой карандашом.

Таблица 2. Свойства объекта Pen

СвойствоОписание
ColorЦвет линии
WidthТолщина линии (задается в пикселях)
DashStyleСтиль линии:

  • DashStyle::Solid - сплошная;
  • DashStyle::Dash - пунктирная, длинные штрихи;
  • DashStyle::Dot - пунктирная, короткие штрихи;
  • DashStyle::DashDot - пунктирная, чередование длинного и короткого штрихов;
  • DashStyle::DashDotDot - пунктирная, чередование одного длинного и двух коротких штрихов;
  • DashStyle::Custom - пунктирная линия, вид которой определяет свойство DashPattern
DashPatternДлина штрихов и промежутков пунктирной линии DashStyle::Custom

   
Для того чтобы использовать карандаш программиста, его надо создать. Создает карандаш конструктор объекта Pen. Конструктор перегружаемый, т. е. для объекта Pen определено несколько конструкторов,
которые различаются количеством параметров. Например, конструктор Pen(Цвет) создает карандаш указанного цвета толщиной в один пиксель, а Pen(Цвет, Толщина) - карандаш
указанного цвета и толщины. В качестве параметра Цвет можно использовать константу типа Color (таблица 3). Другие константы типа Color (а их более 100) можно найти в справочной системе.

Таблица 3. Константы типа Color

КонстантаЦвет
Color::RedКрасный
Color::OrangeОранжевый
Color::YellowЖелтый
Color.GreenЗеленый
Color::LightBlueГолубой
Color::BlueСиний
Color::PurpleПурпурный
Color::BlackЧерный
Color::LightGrayСерый
Color::WhiteБелый
Color::TransparentПрозрачный

   
Цвет, ширину линии и стиль карандаша, созданного программистом, можно изменить. Чтобы это сделать, надо изменить значение соответствующего свойства.

   
Ниже приведен текст функции, которая демонстрирует создание и использование карандаша программиста.

private: System::Void pictureBox1_Paint(System::Object^  sender, 
		System::Windows::Forms::PaintEventArgs^  e) {
	 System::Drawing::Pen^ aPen; // карандаш

	 // создать красный "толстый" карандаш
	aPen = gcnew System::Drawing::Pen(Color::Red,2);
	e->Graphics->DrawRectangle(aPen,10,10,100,100);

	// теперь карандаш зеленый и его толщина 4 пикселя
	aPen->Width = 4;
	aPen->Color = Color::Green;

	// рисуем зеленым карандашом
	e->Graphics->DrawRectangle(aPen,20,20,100,100);
	
	// теперь линия пунктирная
	aPen->Width = 1;
	aPen->Color = Color::Purple;
	aPen->DashStyle = System::Drawing::Drawing2D::DashStyle::Dash;

	// рисуем пунктиром
	e->Graphics->DrawRectangle(aPen,30,30,100,100);
 }

Архив проекта можно взять здесь.

   
Результат работы приложения приведен на рисунке 1.


Рис.1. Результат работы приложения

   
На следующем шаге мы закончим изучение этого вопроса.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий