Поделиться через


Прямоугольники

На протяжении всего программирования Direct3D и Windows объекты на экране называются ограничивающими прямоугольниками. Стороны ограничивающего прямоугольника всегда параллельны стороны экрана, поэтому прямоугольник можно описать двумя точками, верхним левым углом и правым нижним углом.

Ограничивающие прямоугольники

Большинство приложений используют структуру RECT (или псевдоним typedef для него) для передачи сведений о ограничивающем прямоугольнике для использования при перерезке на экран или при обнаружении попаданий. В C++ структура RECT имеет следующее определение.

typedef struct tagRECT { 
    LONG    left;    // This is the upper-left corner x-coordinate.
    LONG    top;     // The upper-left corner y-coordinate.
    LONG    right;   // The lower-right corner x-coordinate.
    LONG    bottom;  // The lower-right corner y-coordinate.
} RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT; 

В предыдущем примере слева и верхние члены — это координаты x-и y ограничивающего прямоугольника в левом верхнем углу. Аналогичным образом правые и нижние элементы составляют координаты правого нижнего угла. На следующем рисунке показано, как визуализировать эти значения.

иллюстрация прямоугольника, ограничивающегося левым, верхним, правым и нижним значениями

Столбец пикселей в правом краю и строка пикселей на нижнем крае не включены в RECT. Например, блокировка RECT с элементами {10, 10, 138, 138} приводит к тому, что объект 128 пикселей имеет ширину и высоту.

Для повышения эффективности, согласованности и простоты использования все функции презентации Direct3D работают с прямоугольниками.

Системы координат и геометрия