Лабораторный практикум по информатике



бет47/83
Дата06.01.2022
өлшемі1,1 Mb.
#15674
түріПрактикум
1   ...   43   44   45   46   47   48   49   50   ...   83
Методы и свойства класса Graphics

Имена большого количества методов, определенных в классе Graphics, начинаются с префикса Draw* и Fill*. Первые из них предна- значены для рисования текста, линий и незакрашенных фигур (таких, например, как прямоугольные рамки), а вторые – для рисования закра- шенных геометрических фигур. Ниже рассматривается применение наиболее часто используемых методов, более полную информацию можно найти в документации по Visual Studio.

Метод DrawLine рисует линию, соединяющую две точки с задан- ными координатами. У метода есть несколько перегруженных версий:

public void DrawLine(Pen, Point, Point); public void DrawLine(Pen, PointF, PointF); public void DrawLine(Pen, int, int, int, int);

public void DrawLine(Pen, float, float, float, float);

Первый параметр задает инструмент для рисования линии – перо.

Перья создаются как объекты класса Pen, например:

Pen p = new Pen(Brushes.Black, 2);

Здесь создается черное перо толщиной 2 пиксела. При создании пера можно выбрать его цвет, толщину и тип линии, а также другие ат- рибуты.

Остальные параметры перегруженных методов DrawLine задают координаты соединяемых точек. Эти координаты могут быть заданы как объекты класса Point и PointF, а также в виде целых чисел и чисел с плавающей десятичной точкой.

В классах Point и PointF определены свойства X и Y, задающие, со- ответственно, координаты точки по горизонтальной и вертикальной оси. При этом в классе Point эти свойства имеют целочисленные значения, а в классе PointF – значения с плавающей десятичной точкой.



Третий и четвертый варианты метода DrawLine позволяют задавать координаты соединяемых точек в виде двух пар чисел. Первая пара опре- деляет координаты первой точки по горизонтальной и вертикальной оси, а вторая – координаты второй точки по этим же осям. Разница между треть- им и четвертым методом заключается в использовании координат различ- ных типов (целочисленных int и с плавающей десятичной точкой float).

Чтобы испытать метод DrawLine в работе, создайте приложение DrawLineApp (аналогично тому, как Вы создавали предыдущее приложе- ние). В этом приложении создайте следующий обработчик события Paint:
private void Form1_Paint(object sender, PaintEventArgs e)

{

Graphics g = e.Graphics; g.Clear(Color.White);



for (int i = 0; i < 50; i++) g.DrawLine(new Pen(Brushes.Black, 2),

10, 4 * i + 20, 200, 4 * i + 20);



}
Здесь мы вызываем метод DrawLine в цикле, рисуя 50 горизонталь- ных линий (рис. 10.2).




Рис. 10.2. Пример использования DrawLine

Вызвав один раз метод DrawLines, можно нарисовать сразу не- сколько прямых линий, соединенных между собой. Иными словами, ме- тод DrawLines позволяет соединить между собой несколько точек. Ко-

ординаты этих точек по горизонтальной и вертикальной осям передают- ся методу через массив класса Point или PointF:

public void DrawLines(Pen, Point[]); public void DrawLines(Pen, PointF[];

Для демонстрации возможностей метода DrawLines создайте при- ложение. Код будет выглядеть следующим образом:

Point[] points = new Point[50]; Pen pen = new Pen(Color.Black, 2);

private void Form1_Paint(object sender, PaintEventArgs e)

{

Graphics g = e.Graphics; g.DrawLines(pen, points);



}
private void Form1_Load(object sender, EventArgs e)

{

for (int i = 0; i < 20; i++)



{

int xPos;

if (i % 2 == 0)

{

}

else


{
}

xPos = 10;


xPos = 400;



points[i] = new Point(xPos, 10 * i);

}

}


Результат работы программы приведен на рис. 10.3.

Для прорисовки прямоугольников можно использовать метод

DrawRectangle:

DrawRectangle(Pen, int, int, int, int);

В качестве первого параметра передается перо класса Pen. Осталь- ные параметры задают расположение и размеры прямоугольника.

Для прорисовки многоугольников можно использовать следующий метод:



DrawPolygon(Pen, Point[]);



Рис. 10.3. Пример использования массива точек

Метод DrawEllipse рисует эллипс, вписанный в прямоугольную область, расположение и размеры которой передаются ему в качестве параметров. При помощи метода DrawArc программа может нарисовать сегмент эллипса. Сегмент задается при помощи координат прямоуголь- ной области, в которую вписан эллипс, а также двух углов, отсчитывае- мых в направлении против часовой стрелки. Первый угол Angle1 задает расположение одного конца сегмента, а второй Angle2 – расположение другого конца сегмента (рис. 10.4).







Рис. 10.4. Углы и прямоугольник, задающие сегмент эллипса

В классе Graphics определен ряд методов, предназначенных для рисования закрашенных фигур. Имена некоторых из этих методов, имеющих префикс Fill*:



  • FillRectangle (рисование закрашенного прямоугольника),

  • FillRectangles (рисование множества закрашенных многоуголь- ников),

  • FillPolygon (рисование закрашенного многоугольника),

  • FillEllipse (рисование закрашенного эллипса),

  • FillPie (рисование закрашенного сегмента эллипса),

  • FillClosedCurve (рисование закрашенного сплайна),

  • FillRegion (рисование закрашенной области типа Region).

Есть два отличия методов с префиксом Fill* от одноименных ме- тодов с префиксом Draw*. Прежде всего, методы с префиксом Fill* ри- суют закрашенные фигуры, а методы с префиксом Draw* – незакрашен- ные. Кроме этого, в качестве первого параметра методам с префиксом Fill* передается не перо класса Pen, а кисть класса SolidBrush. Ниже приведем пример, выводящий закрашенный прямоугольник:
SolidBrush B = new SolidBrush(Color.DeepPink); g.FillRectangle(B, 0, 0, 100, 100);


Достарыңызбен бөлісу:
1   ...   43   44   45   46   47   48   49   50   ...   83




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет