C.Basic - Extended Graphics Commands

  Enterance > English Top > C.Basic > Reference > Extended Graphics Commands

Draw Lines, Circle and Rectangle

Those below commands support clear and reverse function by adding new parameters C or X at the end;

  • Line
  • F-Line
  • Circle
  • Rect(
  • FillRect(

Add [,C] to clear and [,X] to reverse the drawn patterns.
 (example) F-Line 1,1,30,20,X

Text

(説明) コマンドの最後に[,R]で反転表示、[,O]でOr表示、[,V]で反転Or表示が出来ます。
 [.N] Normal
 [.R] Reverse
 [,O] Or
 [,V] reVerse or
(例)Text 20,80,"Test",R
  "Test"がグラフィック座標(80,20)に反転表示で表示されます。

LocateXY

(説明)グラフィック画面にLocateと同じサイズの文字表示が出来ます。
    座標指定はTextコマンドと同じくY座標が先になります。
    コマンドの最後に[,R]で反転表示となります。
(例)LocateYX 20,80,"Test",R
  "Test"がグラフィック座標(80,20)に反転表示で表示されます。

Rect(

(説明)矩形を表示します。座標は実座標指定となります。
(例)Rect 1,1,127,63
  画面いっぱいに枠を描きます。

FillRect(

(説明)塗りつぶした矩形を表示します。
(例)FillRect 1,1,127,63
  画面を塗り潰します。

ReadGraph(

(説明)グラフィック画面のビットマップデータをビット単位で読み取ります。
(書式)ReadGraph(px1,py1,px2,py2)→Mat A
  グラフィック画面の(px1,py1)-(px2,py2)の範囲をMat A行列に取り込みます。
  行列は事前に確保しておく必要はありません。自動的に適切な行列サイズで確保します。
  行列の型指定が無い場合は1ビット型になります。
  WriteGraphコマンドでそのまま使えるデータとなります。

WriteGraph

(説明)ビットマップデータを表示します。
    ビットマップデータは予めMat行列に入力しておきます。
(書式1)WriteGraph x,y,dx,dy,Mat A ,P1[,P2]
  グラフィック画面の座標(x,y)より幅dx、高さdyの範囲にMat Aのデータを描画します。
  P1はデータの表示前加工指定で[,N]でそのまま加工無し、[,R]で反転、[,M]でメッシュ加工、
  P2は指定無しでオーバーライト表示、[,A]でAnd表示、[,O]でOr表示、[,X]でXor表示となります。
(例)[[1,2,4,8,16,32,64,128]]→Mat A
  WriteGraph 80,20, 8,8, Mat A, N
  グラフィック画面の座標(80,20)より斜めの線[/]が描画されます。

(書式2)WriteGraph x,y,dx,dy,Mat A[m,n] ,P1[,P2]
  グラフィック画面の座標(x,y)より幅dx、高さdyの範囲にMat Aの[m,n]からのデータを描画します。
(例)[[16,32,64,128][128,64,32,16]]→Mat A
  WriteGraph 80,20, 4,4, Mat A[1,1], N
  WriteGraph 80,24, 4,4, Mat A[2,1], N
  グラフィック画面の座標(80,20)より[<]の図形が描画されます。

  WriteGraph 80,20, 4,8, Mat A, N
  でも同じ結果となります。

 ビットマップデータは8ビット単位で左上が基準になります。

DotGet(

(例)DotGet( px1,py1, px2,py2)→Mat A[x,y]
  画面上の(px1,py1)-(px2,py2)の範囲をMat A[x,y]を始点として取り込みます。
  指定範囲よりも行列が足りない場合は行列サイズまで取り込みます。

DotPut(

(例)DotPut( Mat A, x,y, px1,py1, px2,py2)
  Mat A行列の(x,y)の要素を始点として、画面上の(px1,py1)-(px2,py2)の範囲に点を打ちます。

(例)DotPut( Mat A[x,y], x1,y1, x2,y2)→Mat B
  Mat A行列の[x,y]を始点として、Mat Bの[x1,y1]-[x2,y2]の範囲にコピーします。
  Mat Bがコピー範囲が収まる広さを確保していない場合は、Mat Bに収まる範囲でコピーします。
  グラフィック画面への転送は行いません。

(例)DotPut( Mat A[x,y], x1,y1, x2,y2)
  Mat A行列の(x,y)の要素を始点として、画面上の(px1,py1)-(px2,py2)の範囲に点を打ちます。

DotTrim(

(例)DotTrim(Mat A, x1,y1,x2,y2)→Mat B
Mat行列内の[X1,y1]-[x2,y2]範囲の0ではないデータの矩形領域をトリミングしてMat B行列にコピーします。
コピーする行列が確保されてない場合は新たに確保されます。
(例)DotTrim(px1,py1,px2,py2)→Mat A
グラフィック画面からトリミング入力、
グラフィックの(px1,py1)-(px2,py2)の範囲のドットが打たれている矩形領域をMat A行列にコピーします。
どちらの場合も、矩形領域サイズ(Mat行列の確保サイズ)はX,Y変数に自動的に入ります。
0ではないデータの矩形領域の右上X,Y座標は小文字変数x,yに自動的に入ります。

CellSum(

(説明)ライフゲーム専用コマンドです。
(例)CellSum(Mat B[X,Y])→C
  Mat B[X,Y]周辺8ドットの合計値を計算します。

DotLife(

(説明)ライフゲーム専用コマンドです。
(例)DotLife( Mat A, x1,y1,x2,y2)→Mat B
 Mat Aの座標(x1,y1)-(x2,y2)の範囲をライフゲーム演算してMat Bに格納します。
 Mat AとMat Bは同じサイズの行列である必要があります。
 コマンド実行後に(x1,y1)-(x2,y2)の範囲よりもセルが広がった場合、その矩形範囲より±1の座標が整数変数に自動的に入ります。
 整数変数L : 左端座標-1
 整数変数R : 右端座標+1
 整数変数T : 上端座標-1
 整数変数B : 下端座標+1

inserted by FC2 system