SophiaFramework UNIVERSE 5.3 |
SFXRectangle には比較、判定、演算のための関数があります。
例 12.30. 図形の演算
SFXRectangle rectangle1(10, 20, 30, 40); SFXRectangle rectangle2(20, 10, 30, 40); SFXRectangle rectangle3; // 比較 if (rectangle1 == rectangle2) { // rectangle1 と rectangle2 が一致するとき } // 矩形が有効かどうか if (rectangle1.IsEmpty()) { // 幅が 0 以下、または高さが 0 以下のとき } // 矩形の包含関係 if (rectangle1.IsInsideOf(rectangle2)) { // rectangle1 が rectangle2 に含まれるとき } // 2 つの矩形の重なった部分を取得する rectangle3 = rectangle1.Intersection(rectangle2); // 矩形の重なり判定 if (rectangle1.IntersectsWith(rectangle2)) { // 2 つの矩形の重なった部分が存在するとき } // 2つの矩形を含む矩形を取得する rectangle3 = rectangle1.Union(rectangle2); // 2つの矩形を含む矩形が存在するか判定する if (rectangle1.UnifiesWith(rectangle2)) { // 2つの矩形を含む矩形が存在するとき } // 幅と高さが負の場合は正にする rectangle1.Normalize();
例 12.31. 演算の連結
// rectangle の高さを 50 ピクセル大きくし、下に 30 ピクセル移動した矩形を描画する // ( rectangle 自身も変更される) graphics->DrawRectangle(rectangle.AddHeight(50).AddY(30)); // rectangle の底辺の始点を 20 ピクセル右に移動し、終点を 40 ピクセル下に動かた、直線を描画する // ( rectangle は変更されない ) graphics->DrawLine(rectangle.GetEdgeBottom().AddStartX(20).AddEndY(40)); // SFXGraphics::GetDeviceRectangle() で取得した画面サイズの矩形を縮小し、移動して表示する graphics->DrawRectangle(SFXGraphics::GetDeviceRectangle().Deflate(40, 20).AddY(10)); // 左上の点 (30, 20)、幅 40 ピクセル、高さ 10 ピクセルの矩形を左右に 5 ピクセル、上下に 10 ピクセル拡大した矩形を描画する graphics->DrawRectangle(SFXRectangle(30, 20, 40, 10).Inflate(5, 10));
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |