2

Direct2D には D2D1_RECT_F があります

{
    FLOAT left;
    FLOAT top;
    FLOAT right;
    FLOAT bottom;
}

float 値を使用する点を除いて、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 に対して同様の関数を提供していないとは信じられません。

長方形のジオメトリを作成して好きなように組み合わせることができると思いますが、それは単純な計算を行う代わりに、オブジェクトを作成して割り当てることです。または、それらの独自のバージョンを作成するだけかもしれません。

何か不足していますか?ありがとう。

4

1 に答える 1

0

For IntersectRect, Direct2D has ID2D1Geometry::CompareWithGeometry which will determine the relationship between two geometries, that's will work for you. note, this function only return the relationship of the two geometries, such as overlap, contains, it will not return the intersection rectangle as what IntersectRect did.

For SubtractRect, Direct2D has no such function, you need to write it yourself.

于 2012-11-30T01:27:38.373 に答える