2000.03.26 更新
(注)まずは分 割ビューポートの使い方を見て下さい。
1.初
期描画位置の記憶
2.ビュー
ポート再区画
2.Ma_viewarea を実行すると各種の分割が可能となります。
LET Gl_view_vol
1
{ビューポートの数を初期化}
SHOW DIMENSIONS OFF
INQ_ENV
1
{ビューポートのデータの取得}
LET Viewnow (INQ
2)
{ビューポートの記憶}
IF (Viewnow <> 1)
CURRENT_VIEWPORT
1
{ビューポート1に移動}
END_IF
INQ_ENV 1
LET Gl_view_ld (INQ
101)
{左下の位置}
LET Gl_view_ru (INQ
102)
{右上の位置}
IF (Viewnow <> 1)
CURRENT_VIEWPORT
Viewnow
{ビューポートの復元}
LET Gl_view_vol
Viewnow
END_IF
SHOW DIMENSIONS ON
END_DEFINE
LOCAL Ld
LOCAL Ru
LOCAL Xx0
LOCAL Xx1
LOCAL X1
LOCAL X2
LOCAL Yy0
LOCAL Yy1
LOCAL Y1
LOCAL Y2
DELETE_VIEWPORT
ALL
{ビューボートをすべて削除}
VIEWPORT_CATCH
OFF
{キャッチ機能をOFF}
LET Xx0 (X_OF Gl_view_ld)
LET Yy0 (Y_OF Gl_view_ld)
LET Xx1 (X_OF Gl_view_ru)
LET Yy1 (Y_OF Gl_view_ru)
IF ((Kubun >= 1) AND (Kubun <=
4))
{全面でなければ}
LET Gl_view_vol
3
{3ポート}
ELSE_IF (Kubun = 5)
LET Gl_view_vol
4
{4ポート}
END_IF
LET Gl_view_vol
3
{取りあえず3ポートを記憶}
IF (Kubun =
1)
{┫の指定なら}
LET X1 (Xx0 + (Xx1 - Xx0)/3)
LET Y1 (Yy0 + (Yy1 - Yy0)/2)
CREATE_VIEWPORT (PNT_XY X1 Yy0)
Gl_view_ru
CREATE_VIEWPORT Gl_view_ld (PNT_XY X1
Y1)
CREATE_VIEWPORT (PNT_XY Xx0 Y1) (PNT_XY
X1 Yy1)
ELSE_IF (Kubun =
2)
{川の指定なら}
LET X1 (Xx0 + (Xx1 - Xx0)/4)
LET X2 (Xx1 - (Xx1 - Xx0)/4)
CREATE_VIEWPORT (PNT_XY X1 Yy0) (PNT_XY
X2 Yy1)
CREATE_VIEWPORT Gl_view_ld (PNT_XY X1
Yy1)
CREATE_VIEWPORT (PNT_XY X2 Yy0)
Gl_view_ru
ELSE_IF (Kubun =
3)
{┻の指定なら}
LET X1 (Xx0 + (Xx1 - Xx0)/2)
LET Y1 (Yy1 - (Yy1 - Yy0)/3)
CREATE_VIEWPORT Gl_view_ld (PNT_XY Xx1
Y1)
CREATE_VIEWPORT (PNT_XY Xx0 Y1) (PNT_XY
X1 Yy1)
CREATE_VIEWPORT (PNT_XY X1 Y1)
Gl_view_ru
ELSE_IF (Kubun =
4)
{≡の指定なら}
LET Y1 (Yy0 + (Yy1 - Yy0)/4)
LET Y2 (Yy1 - (Yy1 - Yy0)/4)
CREATE_VIEWPORT (PNT_XY Xx0 Y1) (PNT_XY
Xx1
Y2)
CREATE_VIEWPORT Gl_view_ld (PNT_XY Xx1
Y1)
CREATE_VIEWPORT (PNT_XY Xx0 Y2)
Gl_view_ru
ELSE_IF (Kubun =
5)
{田の指定なら}
LET X1 (Xx0 + (Xx1 - Xx0)/2)
LET Y1 (Yy1 - (Yy1 - Yy0)/2)
CREATE_VIEWPORT Gl_view_ld (PNT_XY X1
Y1)
CREATE_VIEWPORT (PNT_XY X1 Yy0) (PNT_XY
Xx1
Y1)
CREATE_VIEWPORT (PNT_XY Xx0 Y1) (PNT_XY
X1 Yy1)
CREATE_VIEWPORT (PNT_XY X1 Y1)
Gl_view_ru
ELSE_IF (Kubun =
6)
{全面の指定なら}
CREATE_VIEWPORT Gl_view_ld Gl_view_ru
LET Gl_view_vol
1
{1ポートを記憶}
END_IF
CURRENT_VIEWPORT 1
VIEWPORT_CATCH
ON
{キャッチ機能をON}
END_DEFINE
気をつけて作りました、使用してのトラブルに責任は持てませんが、
自由にお使い下さい。(伏 見 表)