FreeBASIC マニュアルのトップに戻る

FreeBASIC Window

目次→描画ライブラリ参考→描画画面関連WINDOW←オリジナル・サイト

WINDOW 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

現在の表示域のために、新しい視点座標マッピングを用意します。

構文:
Window [ [Screen] ( x1, y1 )-( x2, y2 ) ]

パラメタ:
Screen
y座標を指定している引数は、上から下に向かって増加します。
( x1, y1 )- ( x2, y2 )
新しい浮動点の値は、現在の表示域の反対の角と一致します。
省略すると、Window座標マッピングは取り除かれます。

説明:
Window は、新しい座標システムを定義するのに使われます。
(x1, y1)(x2, y2) は、現在の表示域の反対の角に写像する新しい座標です。
描画の基本的な命令文に渡されるすべての以降の座標は、この新しいマッピングの影響を受けます。
Screen が省略されると、新しい座標システムは Cartesian(デカルトの) になります。すなわち、y座標は、下部から上に向かって増えます。
引数なしで Window を呼ぶと、座標変換が無効になります。

FreeBASIC の現在の挙動は、特定の座標マッピングではなく、Window の角の動きを追うことです。
これは、座標マッピングが、View の呼び出し後に変更できることを意味します。

また、現在、Window の角は、画像バッファでの作業時にも考慮されるため、Window が有効な場合、座標マッピングは画像ごとに異なります。

有効な Window がないとき、事実上、座標マッピングがないので、有効な座標系は一定です。イメージ・バッファ・サイズや、(もしあれば) View 座標に、依存しません。

例:
注:FreeBASIC 1.08〜 で、SetEnviron を追加しなくても、日本語環境で描画画面が表示されるように改善されました。
' Sets the graphics method GDI
' 描画方法を GDI に設定
SetEnviron("fbgfx=GDI")

'' プログラムは、表示座標マッピングを変更する方法を示しています。
'' 現在のビューポートを変更して、画面上に描画された図形のサイズを変更します。
'' 効果は、拡大と縮小です:
''   - ビューポート座標が小さくなると、ウィンドウの外側にあるため、その一部が最終的にクリップされるまで、図は画面上で大きく表示されます。
''   - ビューポート座標が大きくなると、画面上の図が小さく表示されます。

Declare Sub Zoom (ByVal X As Integer)
Dim As Integer X = 500, Xdelta = 50

Screen 12
Do
  Do While X < 525 And X > 50
    X += Xdelta                      '' ウインドウ・サイズを変更
    Zoom(X)
    If Inkey <> "" Then Exit Do, Do  '' プログラムを止めるには、キー入力します
    Sleep 100
  Loop
  X -= Xdelta
  Xdelta *= -1                       '' サイズ変更を逆にします
Loop

Sub Zoom (ByVal X As Integer)
  Window (-X,-X)-(X,X)               '' 新しいウィンドウを定義
  ScreenLock
  Cls
  Circle (0,0), 60, 11, , , 0.5, F   '' x-半径60 で楕円を描画
  ScreenUnlock
End Sub


' Sets the graphics method GDI
' 描画方法を GDI に設定
SetEnviron("fbgfx=GDI")

Screen 13

'' 切り取り部を定義します
View ( 10, 10 ) - ( 310, 150 ), 1, 15   

'' 視点座標を設定します
Window ( -1, -1 ) - ( 1, 1 )

'' X軸を描きます
Line (-1,0)-(1,0),7
Draw String ( 0.8, -0.1 ), "X"

'' Y軸を描きます
Line (0,-1)-(0,1),7
Draw String ( 0.1, 0.8 ), "Y"

Dim As Single x, y, s

'' ステップ幅を計算します(x 座標上の 1 ピクセルのステップに対応します)
s = 2 / PMap ( 1, 0 )

'' 関数をプロットします
For x = -1 To 1 Step s
  y = x ^ 3
  PSet( x, y ), 14
Next x

'' 画面座標に戻ります
Window       

'' 切り取り部を取り除きます
View

'' タイトルを作成します
Draw String ( 120, 160 ), "Y = X ^ 3"

Sleep


イメージ
QBからの違い:

参照:

描画画面関連に戻る

←リンク元に戻る プログラム開発関連に戻る

ページ歴史:2022-12-18 08:34:50
日本語翻訳:WATANABE Makoto、原文著作者:SysOp

ホームページのトップに戻る

表示-非営利-継承