Книга: C# для профессионалов. Том II
Point и PointF
Point и PointF
Рассмотрим сначала Point
(точка) Эта структура концептуально является простейшей и математически полностью эквивалентна двумерному вектору. Она содержит два открытых целых свойства, которые представляют горизонтальное и вертикальное смещение от определенного места (возможно, на экране). Посмотрите на рисунок:
Чтобы перейти из точки А в точку В, необходимо сместиться на 20 единиц вправо и на 10 единиц вниз, помеченных как X и Y на рисунке, так как это обычное обозначение. Можно было бы создать структуру Point
, которая представляет это, следующим образом:
Point АВ = new Point(20, 10);
Console.WriteLine("Moved {0} across, {1} down", AB.X, AB.Y);
X и Y являются свойствами чтения-записи, а значит, можно также задать значения в Point
следующим образом:
Point АВ = new Point();
AB.X = 20;
АВ.Y = 10;
Console.WriteLine("Moved (0) across, (1) down", AB.X, AB.Y);
Отметим, что хотя обычно горизонтальные и вертикальные координаты обозначаются как координаты х и у (буквы нижнего регистра), соответствующие свойства Point
обозначаются X
и Y
(буквами верхнего регистра), так как обычное соглашение в C# для открытых свойств требует, чтобы их имена начинались с букв верхнего регистра.
PointF
по сути идентична Point
, за исключением того, что X
и Y
имеют тип float
вместо int
. PointF
используется, когда координаты не обязательно являются целыми значениями. Для этих структур определено преобразование типов, поэтому можно неявно преобразовывать из Point
в PointF
и явно из PointF
в Point
(последнее преобразование явное в связи с риском ошибок округления):
PointF ABFloat = new PointF(20.5F, 10.9F);
Point AB = (Point)ABFloat;
PointF ABFloat2 = AB;
Одно последнее замечание о координатах. В нашем обсуждении Point
и PointF
сознательно присутствует неопределенность в отношении единиц измерения. Можно говорить о 20 пикселях вправо и 10 пикселях вниз или о 20 дюймах, или 20 милях. Интерпретация координат полностью принадлежит разработчику.
По умолчанию GDI+ будет представлять единицы измерения как пиксели на экране (или принтере, в зависимости от графического устройства), именно таким образом методы объекта Graphics
будут представлять любые координаты, которые передаются им в качестве параметров. Например, точка Point(20, 10)
представляет 20 пикселей вправо по экрану и 10 пикселей вниз. Обычно эти пиксели измеряются от верхнего левого угла клиентской области окна, как было до сих пор в рассмотренных примерах. Но это не всегда так, в некоторых ситуациях может потребоваться нарисовать относительно верхнего левого угла всего окна (включая границу) или даже относительно верхнего левого угла экрана. В большинстве случаев, однако, если документация не говорит обратное, можно предполагать, что речь идет о пикселях относительно верхнего левого угла клиентской области.
Мы вернемся к рассмотрению этого вопроса после изучения прокрутки экрана, когда речь пойдет об использовании трех различных координатных систем: мировых, страницы и устройства.
- Тип Point(F)
- Интеграция Windows SharePoint и Microsoft Office
- Получение помощи по Windows SharePoint Services 3.0
- Службы Windows SharePoint
- Версии служб Windows SharePoint
- Продукты и технологии Microsoft SharePoint
- Переход по узлу SharePoint и домашней странице
- Просмотр списков на узле SharePoint
- Отправка данных в списки SharePoint по электронной почте
- За пределами PowerPoint
- Глава 1. POWERPOINT – ЗЛО?
- Understanding Point-to-Point Protocol over Ethernet