netlib.narod.ru | < Назад | Оглавление | Далее > |
Структура Rectangle определяет прямоугольник, как комбинацию структур Point и Size. Идея в том, что Point определяет расположение левого верхнего угла прямоугольника, a Size — ширину и высоту этого прямоугольника. Это не значит, что его ширина и высота обязательно должны быть положительными числами. Сама структура Rectangle не накладывает таких ограничений. Однако в главах 4 и 5 вы увидите, что структура Rectangle используется в некоторых функциях рисования, и этим функциям нужны положительные ширина и высота. У структуры Rectangle два конструктора:
Конструкторы Rectangle
Rectangle(Point pt, Size size) |
Rectangle(int x, int y, int width, int height) |
Ветераны программирования для Windows, будьте бдительны используя последний конструктор и в тех случаях, когда прямоугольник задается четырьмя числами: вторые два числа — это не координаты нижнего правого угла прямоугольника!
Вот конструкторы структуры RectangleF:
Конструкторы RectangleF
RectangleF(PointF ptf, SizeF sizef) |
RectangleF(float x, float y, float width, float height) |
Легко заметить, что конструкторы для структур Rectangle и RectangleF одинаковы во всем, кроме типов данных.
Фактически в целом реализации структур Rectangle и RectangleF до того похожи, что можно поклясться, что при их создании использовался какой-то шаблон. Помимо типов данных, единственное различие в том, что в структуре RectangleF определяется преобразование из Rectangle в RectangleF, в то время как в структуре Rectangle определены три статических (и уже знакомых вам) метода, позволяющих выполнять преобразование из RectangleF в Rectangle:
Статические методы Rectangle (выборочно)
Rectangle Round(RectangleF rectf) |
Rectangle Truncate(RectangleF rectf) |
Rectangle Ceiling(RectangleF rectf) |
С этого момента я буду говорить только о структуре Rectangle, но все сказанное мной будет применимо и к RectangleF. Типы данных, связанные с RectangleF, — это, конечно, float, PointF и SizeF, а не int, Point и Size.
netlib.narod.ru | < Назад | Оглавление | Далее > |