Direct2D有D2D1_RECT_F
{
FLOAT left;
FLOAT top;
FLOAT right;
FLOAT bottom;
}
它与GDI RECT结构类似,只是它使用浮点值。
typedef struct tagRECT
{
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
GDI提供所有那些RECT操作函数,如
BOOL IntersectRect(
_Out_ LPRECT lprcDst,
_In_ const RECT *lprcSrc1,
_In_ const RECT *lprcSrc2
);
BOOL SubtractRect(
_Out_ LPRECT lprcDst,
_In_ const RECT *lprcSrc1,
_In_ const RECT *lprcSrc2
);
我无法相信Direct2D不会为D2D1_RECT_F提供类似的功能。
我想我可以创建矩形几何,并以任何我想要的方式组合它们,但这是创建和分配对象而不是简单的数学。 或者我想我可能只是创建自己的版本。
我错过了什么吗?感谢。
答案 0 :(得分:0)
对于IntersectRect,Direct2D有ID2D1Geometry::CompareWithGeometry,它将决定两个几何之间的关系,这对你有用。请注意,此函数仅返回两个几何的关系,例如overlap,contains,它不会像IntersectRect那样返回交集矩形。
对于SubtractRect,Direct2D没有这样的功能,你需要自己编写。