Н. А. Тюкачев - C#.программирование 2D и 3D векторной графики
Название: | C#.программирование 2D и 3D векторной графики | |
Автор: | Н. А. Тюкачев | |
Жанр: | Учебники и самоучители по компьютеру, C, C++, C# | |
Изадано в серии: | неизвестно | |
Издательство: | неизвестно | |
Год издания: | - | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "C#.программирование 2D и 3D векторной графики"
Читаем онлайн "C#.программирование 2D и 3D векторной графики". [Страница - 3]
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (13) »
статических
SystemPens
свойств, возвращающих Реn заданного цвета
Point
Структуры описывают целые или вещественные
PointF
координаты (х, у)
Rectangle
Структуры описывают прямоугольные области с
RectangleF
целыми или вещественными параметрами
Size
Структуры описывают ширину/высоту с целыми
SizeF
или вещественными параметрами
6
Продолжение табл. 1.2
Назначение
Используется для инкапсуляции различных средств
текстовой компоновки (например, выравнивание,
межстрочный интервал и т.п.)
Region
Тип описывает внутреннюю часть геометрического
образа, состоящего из прямоугольников и путей
Все эти классы будут далее описаны, поскольку ими приходится
пользоваться, но перед переходом к ним давайте подробно изучим основной
класс Graphics.
Класс
StringFormat
1.3. КЛАСС GRAPHICS
Класс Graphics представляет GDI+ поверхность рисования.
Графический объект поддерживает для поверхности рисования: масштаб,
единицы, ориентацию поверхности рисования.
Приведем пример простейшего приложения, которое на форме рисует
эллипс:
Листинг 1.1. Простейшая графическая программа
public partial class FormMain : Form
{
Graphics g;
private void Draw()
{
g = CreateGraphics();
g.Clear(Color.White);
g.DrawEllipse(Pens.Black,10,10,200,100);
g.Dispose();
}
private void FormMain_Paint(object sender,
PaintEventArgs e)
{
Draw();
}
}
Результат работы программы показан на рисунке 1.1.
Рис. 1.1. Простейшая графическая программа
7
Отметим важные моменты, которые необходимо соблюдать при
создании любого GDI-проекта:
– должно быть определено свойство g класса Graphics;
– необходимо создать обработчик события onPaint, в котором
будет вызываться метод рисования Draw().
В методе Draw():
– методом CreateGraphics() необходимо создать объект g;
– методом Clear() очистить поверхность рисования;
– что-нибудь нарисовать;
– освободить память от объекта g.
Класс Graphics содержит много свойств. Часто используемые
свойства перечислены в таблице 1.3, большинство которых будет
демонстрироваться позже. Все они позволяют не только читать себя, но и
изменять.
Таблица 1.3
Свойства класса Graphics
Свойство
Класс
Описание
Clip
Region
Возвращает или задает объект Region,
ограничивающий область рисования
данного объекта
DpiX /
Float /
Задает значение горизонтального и
DpiY
single
вертикального разрешения в точках на
дюйм
PageScale Float /
Задает значение для масштабирования
single
между универсальными единицами и
единицами страницы
PageUnit
GraphicsUnit Возвращает или задает единицу
измерения для координат страницы
данного объекта
Свойство PageScale устанавливает масштабирование между
мировыми единицами и единицами страницы.
1.4. КООРДИНАТЫ
В определении декартовой системы координат оси X и Y проходят так,
как показано на рисунке 1.2. Значения справа и выше центра координат
являются положительными, а значения слева и ниже – отрицательными.
8
Рис. 1.2. Декартовы координаты
В графических программных средах система координат имеет начало
координат в верхнем левом углу, и оси координат направлены направо и
вниз, как показано на рисунке 1.3.
Рис. 1.3. Мировые координаты
Координаты, используемые в методах класса Graphics, называют
мировыми координатами.
1.5. ПРЕОБРАЗОВАНИЕ КООРДИНАТ
Мировые координаты преобразовываются в координаты страницы
мировыми
преобразованиями.
Мировые
преобразования,
например
TranslateTransform(), ScaleTransform() и RotateTransform(),
9
используются для того, чтобы установить центр и поворот системы
координат.
Свойство PageUnit устанавливает единицу для преобразования и
масштабирования рисунков. Эти единицы – одно из возможных
GraphicsUnits-перечисленных значений, приведенных в таблице 1.4.
Таблица 1.4
Перечисление GraphicsUnits
Перечисленная
Единица измерения
Display
1/75 дюйма
Document
1/300 дюйма
Inch
1 дюйм
Millimeter
1 миллиметр
Pixel
1 пиксел
Point
1/72 дюйма
World
Мировые единицы
В следующем примере рисуется 6 эллипсов с различными единицами
измерения.
Листинг 1.2. Рисование эллипсов с различными единицами измерения
private void Draw()
{
g = CreateGraphics();
g.Clear(Color.White);
g.PageUnit = GraphicsUnit.Pixel;
g.DrawEllipse(Pens.Black, 10, 10, 200, 100);
g.PageUnit = GraphicsUnit.Display;
g.DrawEllipse(Pens.Black, 10, 10, 200, 100);
g.PageUnit = GraphicsUnit.Point;
g.DrawEllipse(Pens.Black, 10, 10, 200, 100);
g.PageUnit = GraphicsUnit.Millimeter;
g.DrawEllipse(Pens.Black, 10, 10, 20, 10);
g.PageUnit = GraphicsUnit.Document;
g.DrawEllipse(Pens.Black, 10, 10, 200, 100);
Pen myPen = new Pen(Color.Black,0.05F);
g.PageUnit = GraphicsUnit.Inch;
g.DrawEllipse(myPen, 1, 1, 2, 1);
g.Dispose();
}
10
Для первых пяти эллипсов --">
SystemPens
свойств, возвращающих Реn заданного цвета
Point
Структуры описывают целые или вещественные
PointF
координаты (х, у)
Rectangle
Структуры описывают прямоугольные области с
RectangleF
целыми или вещественными параметрами
Size
Структуры описывают ширину/высоту с целыми
SizeF
или вещественными параметрами
6
Продолжение табл. 1.2
Назначение
Используется для инкапсуляции различных средств
текстовой компоновки (например, выравнивание,
межстрочный интервал и т.п.)
Region
Тип описывает внутреннюю часть геометрического
образа, состоящего из прямоугольников и путей
Все эти классы будут далее описаны, поскольку ими приходится
пользоваться, но перед переходом к ним давайте подробно изучим основной
класс Graphics.
Класс
StringFormat
1.3. КЛАСС GRAPHICS
Класс Graphics представляет GDI+ поверхность рисования.
Графический объект поддерживает для поверхности рисования: масштаб,
единицы, ориентацию поверхности рисования.
Приведем пример простейшего приложения, которое на форме рисует
эллипс:
Листинг 1.1. Простейшая графическая программа
public partial class FormMain : Form
{
Graphics g;
private void Draw()
{
g = CreateGraphics();
g.Clear(Color.White);
g.DrawEllipse(Pens.Black,10,10,200,100);
g.Dispose();
}
private void FormMain_Paint(object sender,
PaintEventArgs e)
{
Draw();
}
}
Результат работы программы показан на рисунке 1.1.
Рис. 1.1. Простейшая графическая программа
7
Отметим важные моменты, которые необходимо соблюдать при
создании любого GDI-проекта:
– должно быть определено свойство g класса Graphics;
– необходимо создать обработчик события onPaint, в котором
будет вызываться метод рисования Draw().
В методе Draw():
– методом CreateGraphics() необходимо создать объект g;
– методом Clear() очистить поверхность рисования;
– что-нибудь нарисовать;
– освободить память от объекта g.
Класс Graphics содержит много свойств. Часто используемые
свойства перечислены в таблице 1.3, большинство которых будет
демонстрироваться позже. Все они позволяют не только читать себя, но и
изменять.
Таблица 1.3
Свойства класса Graphics
Свойство
Класс
Описание
Clip
Region
Возвращает или задает объект Region,
ограничивающий область рисования
данного объекта
DpiX /
Float /
Задает значение горизонтального и
DpiY
single
вертикального разрешения в точках на
дюйм
PageScale Float /
Задает значение для масштабирования
single
между универсальными единицами и
единицами страницы
PageUnit
GraphicsUnit Возвращает или задает единицу
измерения для координат страницы
данного объекта
Свойство PageScale устанавливает масштабирование между
мировыми единицами и единицами страницы.
1.4. КООРДИНАТЫ
В определении декартовой системы координат оси X и Y проходят так,
как показано на рисунке 1.2. Значения справа и выше центра координат
являются положительными, а значения слева и ниже – отрицательными.
8
Рис. 1.2. Декартовы координаты
В графических программных средах система координат имеет начало
координат в верхнем левом углу, и оси координат направлены направо и
вниз, как показано на рисунке 1.3.
Рис. 1.3. Мировые координаты
Координаты, используемые в методах класса Graphics, называют
мировыми координатами.
1.5. ПРЕОБРАЗОВАНИЕ КООРДИНАТ
Мировые координаты преобразовываются в координаты страницы
мировыми
преобразованиями.
Мировые
преобразования,
например
TranslateTransform(), ScaleTransform() и RotateTransform(),
9
используются для того, чтобы установить центр и поворот системы
координат.
Свойство PageUnit устанавливает единицу для преобразования и
масштабирования рисунков. Эти единицы – одно из возможных
GraphicsUnits-перечисленных значений, приведенных в таблице 1.4.
Таблица 1.4
Перечисление GraphicsUnits
Перечисленная
Единица измерения
Display
1/75 дюйма
Document
1/300 дюйма
Inch
1 дюйм
Millimeter
1 миллиметр
Pixel
1 пиксел
Point
1/72 дюйма
World
Мировые единицы
В следующем примере рисуется 6 эллипсов с различными единицами
измерения.
Листинг 1.2. Рисование эллипсов с различными единицами измерения
private void Draw()
{
g = CreateGraphics();
g.Clear(Color.White);
g.PageUnit = GraphicsUnit.Pixel;
g.DrawEllipse(Pens.Black, 10, 10, 200, 100);
g.PageUnit = GraphicsUnit.Display;
g.DrawEllipse(Pens.Black, 10, 10, 200, 100);
g.PageUnit = GraphicsUnit.Point;
g.DrawEllipse(Pens.Black, 10, 10, 200, 100);
g.PageUnit = GraphicsUnit.Millimeter;
g.DrawEllipse(Pens.Black, 10, 10, 20, 10);
g.PageUnit = GraphicsUnit.Document;
g.DrawEllipse(Pens.Black, 10, 10, 200, 100);
Pen myPen = new Pen(Color.Black,0.05F);
g.PageUnit = GraphicsUnit.Inch;
g.DrawEllipse(myPen, 1, 1, 2, 1);
g.Dispose();
}
10
Для первых пяти эллипсов --">
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (13) »