Вывод графических примитивов
Лекция по ООП
Вывод графических примитивов.
Все примитивы контурные выводятся методом со слова g. Drow. DrowRectangle (Pen p, int x1, int y1, int l, int h) – вывод прямоугольника. Метод перегружен. Вместо INt можно использовать Float.
Прямоугольник может задаваться объектами типа Rectangle и Rectangle F. Это два библиотечных класса, что предназначены для работы с прямоугольниками.
Rectangle r = new Rectangle (, int x1, int y1, int l, int h);
Вывод дуги на экран.
DrawArc – дуга эллипса. Задается через прямоугольник (x1, y1, l, h),
DrawArc (Pen p, int x1, int y1, int l, int h, int S, int e);
p – карандаш
В прямоугольник вписывается эллипс.
s – начальный угол, с которого начинается дуга
e – конечный угол, на который заканчивается дуга.
Вывод сплайна.
Вывод сплайна происходит по двум командам.
DrawCurxe (Pen p, Paint [] mas p);
Метод перегружен, можно задать третий параметр, который изменяет изгиб дуги. Четвертый параметр позволяет нарисовать замкнутый сплайн.
ПЕРЕЧИСЛЕНИЕ. ТЕМА.
Перечисление – это структурный тип, который позволяет давать числам имена. Описываетсч перечисление с использованием служебного слова enum.
enum E1 {a, b, d=100, p, q};
E1 – имя перечисления
Список имен возможно со значениями. Если значения не указаны, то они задаются по умолчанию, начиная с нуля (a = 0, b=1, p=101, q=102). Шаг по умолчанию равен единице. В С# имена могут получить только целые числа.
Рассмотрим работу с перечислением на примере графики:
При выводе контурных примитивов, мы обязательно должны задать карандаш объект типа Pen. Этот объект не только задает цвет и ширину линии, но и стиль этой линии.
Pen p = new Pen (Color Red);
Стиль линии задается свойством:
p. DashStyle = DashStyle. Dot;
p. DashStyle = (DashStyle)1 // единица взята из перечисления DashStyle
p. DashStyle = DashStyle. Solid //вернуться к сплошной линии.
Стили линии задаются с помощью перечисления.
Стиль концов линии.
Форма концов отрезком задается двумя свойствами:
EndCap – вид конца отрезка
StartCap – вид начала отрезка
Виды концов отрезка задаются перечеслением LineCap
p. EndCap = LineCap. PoundAnchor;
p. StartCap = LineCap. ArrowAnchor;
ПЛОЩАДНЫЕ ПРИМИТИВЫ
Это закрашенные замкнутые фигуры. Вывод площадных примитивов происходит методом Fill. Фигура закрашивается кистью, объектом типа Brush. Класс Brush – абстрактный класс, то есть ссылка типа Brush всегда должна указывать на объекты производного класса, одного из трех:
Brush b = new HatchBrush (HatchStyle h, Color c1, Color c2);
LinearGradiendBrush
TextureBrush
Кисть типа HatchBrush задается шаблоном и двумя цветами. Задается шаблоном перечислением HatchStyle и два цвета.
Пример. Нарисуем закрашенный эллипс:
Brush b = new HatchBrush (HatchStyle. DottedGrid, Color. Red, Color. Grech);
g. FillEllipse (b, 10, 10, 100, 100); // объект типа Grafics (гугли)
Градиентная кисть
Эта кисть позволяет задать плавный переход от одного цвета к другому.
b= new LinearGradientBrush ( Rect r, Color c1, Color c2, LinearGradientMode m);
LinearGradientMode – стиль перехода.
Rect – библиотечный класс, предназначенный для работы с прямоугольниками, непривязанными к плоскости, которые задаются только своей шириной и высотой.
Текстурная кисть