![]() ![]() ![]()
|
SophiaFramework 2.2 |
SophiaFramework では図形の演算のためにシェイプ クラス群が用意されています。 シェイプ クラス群は BREW が用意している図形構造体をクラス化して、オブジェクト指向の メリットが生かせるように様々な操作メソッドを追加したものです。
たとえば、AEERect 構造体を使用すると、四角形の移動や縮小などの演算はプログラマが直接 行わなくてはなりません。一方シェイプ クラス群の SFURect クラスを使用すると、 AEERect と互換性を保ちつつ、オブジェクト指向のプログラミングができます。
SophiaFramework では以下の種類のシェイプを使用できます。
| シェイプ クラス | BREW の構造体 | 説明 |
|---|---|---|
| SFUArc | AEEArc | 円弧を表します |
| SFUCircle | AEECircle | 円を表します |
| SFUClip | AEEClip | クリッピング領域を表します |
| SFUEllipse | AEEEllipse | 楕円を表します |
| SFULine | AEELine | 線を表します |
| SFUMargin | --- | マージンを表します |
| SFUPie | AEEPie | 扇型を表します |
| SFUPoint | AEEPoint | 座標を表します |
| SFUPolygon | AEEPolygon | 閉じた多角形を表します |
| SFUPolyline | AEEPolyline | 開いた多角形を表します |
| SFURect | AEERect | 四角形を表します |
| SFUSize | --- | サイズを表します |
| SFUTriangle | AEETriangle | 三角形を表します |
SophiaFramework を使用した図形の演算の例を示します。 たとえば、四角形の移動は以下のように記述できます。
SFURect r(0,0,10,10); r += SFUPoint(10,10); // もしくは r.Offset(10,10);
また、四角形の縮小や比較はそれぞれ以下のように記述できます。
SFURect r(0,0,10,10); r.Inset(1,1);
SFURect r1(0,0,10,10);
SFURect r2(10,10,10,10);
if (r1 != r2) {
// もし r1 が r2 と等しいなら...
}
// もしくは
if (r1.Equal(r2)) {
// もし r1 が r2 と等しいなら...
}
四角形の AND と OR は以下のように記述します。
SFURect r1(10,10,40,40); SFURect r2(30,30,50,50); // AND r1 &= r2; // もしくは r1.Sect(r2); // OR r1 |= r2; // もしくは r1.Union(r2);
四角形が四角形の中に包含されるかや、座標が四角形の中に包含されるかなども 簡単に判定することができます。
SFURect r1(10,10,40,40);
SFURect r2(20,20,20,20);
SFUPoint p1(30,30);
// 四角形と四角形
if (r2.Inside(r1)) {
// もし r2 が r1 に含まれていたら...
}
// 座標と四角形
if (p1.Inside(r2)) {
// もし p1 が r2 に含まれていたら...
}
四角形の上辺や下辺などを簡単に取得することも出来ます。
SFURect r(10,20,50,40); SFULine l; // 四角形の上辺を取得します l = r.LineT(); // 四角形の下辺を取得します l = r.LineB();
SFUPoligon や SFUPolyline を使用すると、座標要素の管理を これらのクラスに任せることが出来ます。
SFUPolygon p; // 座標要素の追加 p.Append(SFUPoint(0,0)); p.Append(SFUPoint(50,60)); p.Append(SFUPoint(30,20)); // 座標要素の挿入 p.Insert(1,SFUPoint(80,80)); // 移動 p.Offset(SFUPoint(100,100)); // 座標要素の破棄 p.Remove(2);
| Copyright(C) 2003-2004 Sophia Cradle Inc., All Rights Reserved. |
![]() ![]() ![]()
|