以下の追加の組み込み関数が存在します(データ変換,グラフィックス関係等)。
戻り値のない関数は、式の中では使えません。
charcode() 文字のコードを返します。
charfrom() コードに対応する文字を返します。
clamp() 数値が指定した範囲におさまるように変換します。
colalpha() 透明度付きで描画色を設定します。(戻り値なし)
coloralpha() 透明度付きで描画色を設定します。(戻り値なし)
fillarea() 領域の塗りつぶしを行います。(戻り値なし)
fpoly() 多角形を塗りつぶします。(戻り値なし)
frombinstr() 2進数表記の文字列を数値に変換して返します。整数のみ対応です。
fromhexstr() 16進数表記の文字列を数値に変換して返します。整数のみ対応です。
poly() 多角形を描画します。(戻り値なし)
radacos() ラジアン版のアークコサイン関数です。
radasin() ラジアン版のアークサイン関数です。
radatan() ラジアン版のアークタンジェント関数です。
radatan2() ラジアン版のアークタンジェント2関数です。
radcos() ラジアン版のコサイン関数です。
radsin() ラジアン版のサイン関数です。
radtan() ラジアン版のタンジェント関数です。
randint() 指定した範囲の整数の乱数を返します。
recthit() 四角形同士の当たり判定を行います。
remap() ある範囲内の値を、別の範囲内の値に変換します。
tobinstr() 数値を2進数表記の文字列に変換して返します。整数のみ対応です。
tofloat() 文字列を数値に変換して返します。小数部も含めて変換します。
tohankaku() 文字列中の全角文字を半角文字に変換して返します。
tohexstr() 数値を16進数表記の文字列に変換して返します。整数のみ対応です。
toint() 引数を整数に変換して返します。小数部は切り捨てます。
tolower() 文字列中のアルファベットを小文字に変換して返します。
tostr() 数値を文字列に変換して返します。小数部も含めて変換します。
toupper() 文字列中のアルファベットを大文字に変換して返します。
tozenkaku() 文字列中の半角文字を全角文字に変換して返します。
transimg() 透明画像変換を行います。(戻り値なし)
wrap() 数値が指定した範囲におさまるように剰余を使って変換します。
2.5.1.組み込み関数2の詳細
--
charcode(a1)
またはcharcode(a1,a2)
文字a1のコードを返します(文字コードはUTF-16です)。
a2を指定すると、文字列a1のa2番目の位置の文字のコードを返します。
位置は1文字目を0として数えます。
2コードで1文字となる文字cについては、
a=charcode(c,0)
b=charcode(c,1)
でコードa,bを取得できます。
--
charfrom(a1)
またはcharfrom(a1,a2)
コードa1に対応する文字を返します(文字コードはUTF-16です)。
2コードで1文字となる文字については、
a1,a2でコードを2個指定すると、対応する文字を返します。
(2コードで1文字となる文字は、古いPCでは表示できない場合があります)
--
clamp(x,min,max)
数値xが指定した範囲(min~max)におさまるように変換します。
数値xが数値minより小さければminを返します。
数値xが数値maxより大きければmaxを返します。
それ以外であれば数値xをそのまま返します。
--
colalpha(c,alpha)
透明度付きで描画色を設定します。
色cは RGB各8ビット、合計24ビットの数値で色を指定します。
alphaには透明度を0-255までの数値で指定します(小さいほど透明になります)。
(戻り値なし)
--
coloralpha(r,g,b,alpha)
透明度付きで描画色を設定します。
r,g,bは 赤,緑,青の輝度を 0-255までの数値で指定します。
alphaには透明度を0-255までの数値で指定します(小さいほど透明になります)。
(戻り値なし)
--
fillarea(x,y,th,bc)
座標(x,y)を開始点として、領域の塗りつぶしを行います。
しきい値thと境界色bcは省略可能です。
しきい値thには 同色と判定する許容値を指定します。範囲は0-255です。
しきい値thを省略すると、0を指定したことになります。
境界色bcには、RGB各8ビット、合計24ビットの数値で 色を指定します。
境界色bcを指定すると、境界色に囲まれた領域を塗りつぶします。
境界色bcを省略した場合は、開始点と同一色の領域を塗りつぶします。
現状、HTML5のcanvas機能の にじみ のため、しきい値を設定しないと、
うまく塗りつぶせない場合があります。
(戻り値なし)
--
fpoly(x,y,a1,a2)
多角形を塗りつぶします。
(輪郭のみを表示したいときはpoly()を使用してください)
xには、多角形の頂点のx座標を格納した配列変数名を指定します。
yには、多角形の頂点のy座標を格納した配列変数名を指定します。
(x,yには[ ]をつけないで配列変数名だけを指定します)
a1には配列変数の添字の最小値を指定します。
a2には配列変数の添字の最大値を指定します。
例えば、
x[0]=50
y[0]=0
x[1]=0
y[1]=100
x[2]=100
y[2]=100
fpoly(x,y,0,2)
とすると、三角形を塗りつぶして表示します。
(戻り値なし)
--
frombinstr(a1)
2進数表記の文字列a1を数値に変換して返します。整数のみ対応です。
--
fromhexstr(a1)
16進数表記の文字列a1を数値に変換して返します。整数のみ対応です。
--
poly(x,y,a1,a2,flg)
多角形を描画します。
(内部を塗りつぶしたいときはfpoly()を使用してください)
xには、多角形の頂点のx座標を格納した配列変数名を指定します。
yには、多角形の頂点のy座標を格納した配列変数名を指定します。
(x,yには[ ]をつけないで配列変数名だけを指定します)
a1には配列変数の添字の最小値を指定します。
a2には配列変数の添字の最大値を指定します。
flgには、多角形を閉じるかどうかを指定します。
flgに0を指定すると、多角形を閉じます(デフォルト動作)。
flgに0以外を指定すると、多角形を閉じません(折れ線の描画になります)。
flgは省略可能です。省略した場合には0を指定したことになります。
例えば、
x[0]=50
y[0]=0
x[1]=0
y[1]=100
x[2]=100
y[2]=100
poly(x,y,0,2)
とすると、三角形を表示します。
(戻り値なし)
--
radacos(a1)
a1のアークコサインを返します。単位はラジアンです。
戻り値の範囲は 0~PI になります。
--
radasin(a1)
a1のアークサインを返します。単位はラジアンです。
戻り値の範囲は -PI/2~PI/2 になります。
--
radatan(a1)
a1のアークタンジェントを返します。単位はラジアンです。
戻り値の範囲は -PI/2~PI/2 になります。
--
radatan2(y,x)
座標(x,y)のアークタンジェント2を返します。単位はラジアンです。
戻り値の範囲は -PI~PI になります。
引数の順番が y,xの順であるため注意が必要です。
--
radcos(a1)
a1のコサインを返します。a1の単位はラジアンです。
--
radsin(a1)
a1のサインを返します。a1の単位はラジアンです。
--
radtan(a1)
a1のタンジェントを返します。a1の単位はラジアンです。
--
randint(a1,a2)
指定した範囲(a1~a2)の整数の乱数を返します。
例えば、ret=randint(1,6) とすると 1-6 までのいずれかの整数の数値がretに返ります。
また 例えば、ret=randint(0,2) とすると 0,1,2 のいずれかの数値がretに返ります。
また 例えば、ret=randint(-1,1) とすると -1,0,1 のいずれかの数値がretに返ります。
--
recthit(x1,y1,w1,h1,x2,y2,w2,h2)
四角形同士の当たり判定を行います。
左上座標が(x1,y1)で幅w1,高さh1の四角形と、
左上座標が(x2,y2)で幅w2,高さh2の四角形とが、
重なった部分がある場合に1を返します。
そうでなければ0を返します。
幅と高さは0より大きい値である必要があります。
--
remap(x,minx,maxx,miny,maxy)
ある範囲内(minx~maxx)の値xを、別の範囲内(miny~maxy)の値yに変換します。
具体的には、
y=miny+(x-minx)*(maxy-miny)/(maxx-minx)
を計算して返します。
これは、比例式 maxx-x:x-minx = maxy-y:y-miny が成り立つような値yを返すことになります。
--
tobinstr(a1)
数値a1を2進数表記の文字列に変換して返します。整数のみ対応です。
--
tofloat(a1)
文字列a1を数値に変換して返します。小数部も含めて変換します。
--
tohankaku(a1,mode)
文字列a1の中の全角文字を半角文字に変換して返します。
modeに以下の文字を含めることで、変換の種類を指定できます。
a アルファベットを半角に変換します
n 数字を半角に変換します
p 記号を半角に変換します
s スペースを半角に変換します
k カタカナを半角に変換します
(「ー」「・」もカタカナ扱いのため半角になります。
また「。」「、」「「」「」」は記号扱いのため p指定で半角になります)
t ひらがなを半角カタカナに変換します
(副作用として「ー」「・」およびカタカナも半角になります)
v 濁点を分離します (「ガ」→「ガ」等) (半濁点も分離します「パ」→「パ」等)
d 分離した濁点「゛」を半角に変換します (分離した半濁点「゜」も半角に変換します)
modeは"anp"のように複数の変換を一括で指定できます。
modeを省略すると "anpskd" を指定したことになります。
--
tohexstr(a1)
数値a1を16進数表記の文字列に変換して返します。整数のみ対応です。
--
toint(a1)
引数a1を整数に変換して返します。小数部は切り捨てます。
--
tolower(a1)
文字列a1の中のアルファベットを小文字に変換して返します。
--
tostr(a1)
数値a1を文字列に変換して返します。小数部も含めて変換します。
--
toupper(a1)
文字列a1の中のアルファベットを大文字に変換して返します。
--
tozenkaku(a1,mode)
文字列a1の中の半角文字を全角文字に変換して返します。
modeに以下の文字を含めることで、変換の種類を指定できます。
a アルファベットを全角に変換します
n 数字を全角に変換します
p 記号を全角に変換します
s スペースを全角に変換します
k カタカナを全角に変換します
(「ー」「・」もカタカナ扱いのため全角になります。
また「。」「、」「「」「」」は記号扱いのため p指定で全角になります)
h カタカナをひらがなに変換します
(副作用として「ー」「・」「ヷ」「ヺ」も全角になります)
t ひらがなをカタカナに変換します
m 濁点を結合します (「ガ」→「ガ」等) (半濁点も結合します「パ」→「パ」等)
v 濁点を分離します (「ガ」→「ガ」等) (半濁点も分離します「パ」→「パ」等)
d 分離した濁点「゙」を全角に変換します (分離した半濁点「゚」も全角に変換します)
modeは"anp"のように複数の変換を一括で指定できます。
modeを省略すると "anpskd" を指定したことになります。
--
transimg(img,c,th)
透明画像変換を行います。
Image変数 imgに格納した画像の 色cの部分を、透明にします。
色cは RGB各8ビット、合計24ビットの数値で色を指定します。
しきい値thには 同色と判定する許容値を指定します。範囲は0-255です。
しきい値thを省略すると、0を指定したことになります。
(戻り値なし)
--
wrap(x,min,max)
数値xが指定した範囲(min~max)におさまるように剰余(%)を使って変換します。
具体的には、t=(x-min)%(max-min) を計算し、
t<0 のときには y=t+max を返します。また、
t>=0 のときには y=t+min を返します。
これによって、片方の境界を越えた場合に、反対側の境界から出てくるような動作を実現できます。
注意点として、min<max であれば、戻り値は常にmaxより小さくなります。
(2019-4-15)