SophiaFramework UNIVERSE 5.3 |
参照: BREW API AEELine
例 12.16. 直線の描画
// SFXGraphics インスタンスの取得 SFXGraphicsPtr graphics = SFXGraphics::GetInstance(); graphics->DrawLine(line); // 線を描画する
例 12.17. 直線の値の取得
SInt16 startX = line.GetStartX(); // startX = 20 SInt16 startY = line.GetStartY(); // startY = 40 SInt16 endX = line.GetEndX(); // endX = 150 SInt16 endY = line.GetEndY(); // endY = 200
例 12.18. 直線の設定
// 始点を (10, 20) に設定する line.SetStart(10, 20); // X 座標と Y 座標に分けて始点を設定する line.SetStartX(10); line.SetStartY(20); // 終点を (200, 220) に設定する line.SetEnd(200, 220); // X 座標と Y 座標に分けて終点を設定する line.SetEndX(200); line.SetEndY(220);
例 12.19. 直線の演算
// 始点を (40, 50)、終点を (150, 50) に設定する line.Set(40, 50, 150, 50); graphics->DrawLine(line); // 線を描画する // 線を右に 0 ピクセル、下に 30 ピクセル移動する line.Offset(0, 30); graphics->DrawLine(line); // 線を描画する // 線を右に 40 ピクセル、下に 50 ピクセル移動する line.Offset(40, 50); // 終点を左に 20 ピクセル移動する (左への移動は引き算でも記述できる) line.SubEndX(20); graphics->DrawLine(line); // 線を描画する SIntN i; for (i = 0; i < 5; ++i) { // 線を右に 0 ピクセル、下に 20 ピクセル移動する line.Offset(0, 20); graphics->DrawLine(line); // 線を描画する }
参照: BREW API AEERect
例 12.21. 矩形の枠線の描画
SFXGraphicsPtr graphics = SFXGraphics::GetInstance(); graphics->DrawRectangle(rectangle);
参照 : 色
例 12.23. 矩形の値の取得
SInt16 left = rectangle.GetLeft(); // left = 20 SInt16 right = rectangle.GetRight(); // right = 220 SInt16 top = rectangle.GetTop(); // top = 80 SInt16 bottom = rectangle.GetBottom(); // bottom = 180 SInt16 width = rectangle.GetWidth(); // width = 200 SInt16 height = rectangle.GetHeight(); // height = 100
例 12.24. 辺の取得
SFXLine leftLine = rectangle.GetEdgeLeft(); SFXLine rightLine = rectangle.GetEdgeRight(); SFXLine topLine = rectangle.GetEdgeTop(); SFXLine bottomLine = rectangle.GetEdgeBottom();
例 12.25. 矩形の底辺と右辺だけの描画
graphics->DrawLine(rectangle.GetEdgeBottom()); graphics->DrawLine(rectangle.GetEdgeRight());
例 12.26. 矩形の設定
rectangle.Set(30, 45, 200, 100); rectangle.SetLeft(30); rectangle.SetRight(230); rectangle.SetTop(45); rectangle.SetBottom(145); rectangle.SetWidth(200); rectangle.SetHeight(100); graphics->DrawRectangle(rectangle);
例 12.27. 矩形の演算
// 画面全体の矩形を取得する SFXRectangle rectangle = SFXGraphics::GetDeviceRectangle(); // 矩形を横 20 ピクセル、縦 30 ピクセルだけ縮める rectangle.Deflate(20, 30); // 矩形を描画する graphics->DrawRectangle(rectangle); // 矩形の上辺の Y 座標に 50 だけ加算する rectangle.AddTop(50); // 矩形を黒色で塗り潰す graphics->FillRectangle(rectangle, SFXRGBColor(0x00, 0x00, 0x00, 0x00));
表 12.5. 三角形・円・扇形などを表すクラス
クラス名 | BREW の構造体 | 図形の種類 | 解説 |
---|---|---|---|
SFXTriangle | AEETriangle | 三角形 | 3 点 (x1, y1), (x2, y2), (x3, y3) を持つ、三角形を表すクラスです。 |
SFXCircle | AEECircle | 円 | 中心 (x, y)、半径を持つ、円を表すクラスです。 |
SFXPie | AEEPie | 扇形 | 中心 (x, y)、半径、開始角度、範囲角度を持つ、扇形を表すクラスです。 |
SFXArc | AEEArc | 弧 | 中心 (x, y)、半径、開始角度、範囲角度を持つ、弧を表すクラスです。 |
SFXEllipse | AEEEllipse | 楕円 | 中心 (x, y)、左右半径、上下半径の値を持つ、楕円を表すクラスです。 |
参照: BREW API AEETriangle | BREW API AEECircle | BREW API AEEPie | BREW API AEEArc | BREW API AEEEllipse
例 12.28. 三角形・円・扇形などの描画
// 三角形 // 左から x1, y1, x2, y2, x3, y3 SFXTriangle triangle(10, 40, 105, 25, 80, 95); // 三角形の描画 graphics->DrawTriangle(triangle); // 円 // 左から中心の x 座標、中心の y 座標、半径 SFXCircle circle(170, 60, 40); // 円の描画 graphics->DrawCircle(circle); // 扇形 // 左から中心の x 座標、中心の y 座標、半径、開始角度、範囲角度 SFXPie pie(80, 160, 60, 120, 60); // 扇形の描画 graphics->DrawPie(pie); // 弧 // 左から中心の x 座標、中心の y 座標、半径、開始角度、範囲角度 SFXArc arc(190, 160, 60, 120, 60); // 弧の描画 graphics->DrawArc(arc); // 楕円 // 左から中心の x 座標、中心の y 座標、左右半径、上下半径 SFXEllipse ellipse(110, 200, 100, 20); // 楕円の描画 graphics->DrawEllipse(ellipse);
SFXPolygon、SFXPolyline クラスでは、頂点 ( SFXPixel ) の座標の配列を外部で確保し、インスタンスに設定します。
表 12.6. 多角形・折れ線を表すクラス
クラス名 | BREW の構造体 | 図形の種類 | 解説 |
---|---|---|---|
SFXPolygon | AEEPolygon | 多角形 | 多角形を表すクラスです。 |
SFXPolyline | AEEPolyline | 折れ線 | 折れ線を表すクラスです。 |
参照: BREW API AEEPolygon | BREW API AEEPolyline
ピクセルの配列 | |
---|---|
頂点を表すピクセルの配列が破壊されないように注意します。 |
例 12.29. 多角形と折れ線の描画
// 多角形の頂点 SFXPixel pixel[5]; pixel[0].Set(30, 80); pixel[1].Set(35, 50); pixel[2].Set(130, 30); pixel[3].Set(180, 40); pixel[4].Set(190, 90); // 多角形の定義 ( 頂点の配列とサイズを設定する ) SFXPolygon polygon(&pixel[0], lengthof(pixel)); // 多角形の描画 graphics->DrawPolygon(polygon); // 折れ線の頂点 SFXPixel pixel[5]; pixel[0].Set(30, 80); pixel[1].Set(35, 50); pixel[2].Set(130, 30); pixel[3].Set(180, 40); pixel[4].Set(190, 90); // 折れ線の定義 (頂点の配列とサイズを設定する) SFXPolyline polyline(&pixel[0], lengthof(pixel)); // 折れ線の描画 graphics->DrawPolyline(polyline);
Copyright(c) 2002 - 2024 Sophia Cradle Incorporated All Rights Reserved. |