こんにちは。今回は前回の続きをやっていきます。
前回ではMSX2以降のマシンでMSXBASICのCIRCLE命令の弧の指定方法でラジアンを試してみました。
今回は座標系でラジアンを求める計算をやってやっとCIRCLE命令と一致しました。
また度数法も90度までしかまだ対応していませんが、座標の±判別で加算処理をすれば359度まで求めることができそうです。
このようにマウスをクリックする(指定点はSX,SY)と扇形ができます。
指定点から原点の2点間の距離を出して半径を求めました。
ATNアークタンジェントはMSXBASICで何に使うのかよくわかりませんでしたが、
X1,Y1座標を割ること(ATN(Y1/X1))で左下の1.2545~というラジアンの数値を出すことができます。
MSXBASICは遅いですが倍精度実数で計算してくれますが大きな数を扱う仕事にはあまり向かないです。
DEFINTA-Zは0000H~FFFFHの65535を割って±32767に0を含んだ小数点を含まない整数で
BASIC内部のmathpackというオブジェクトを使って浮動小数点演算に対応しています。
例えば42を42E+3とか42E-2とか試してみてください。
これが16ビット以上になるとCPUがやってくれるので高速になっています。
90度以上はラジアン値の補正をするテストプログラムです。
10番の10.RADを指定すると原点からの距離と角度を求めます。
1221行はSXがZXよりも小さいマイナスになる場合です。この場合は円周率を加えます。
1222行はSYがZYよりも大きい場合です。この場合は2倍の円周率を加えます。
メッシュと原点のラインはありませんが結果が出ます。
343度を指定することができました。
図形の重心を原点にしたりよくあります。
343度というような角度指定は製図ではあまり使いませんが90度までは使います。
今回はcircleの角度指定にならってみました。思った角度になったでしょうか?
繰り返しになりますがホームページ移行のため、
みなさんに何かMSXパソコンで特典ができないか考えています。
具体的に決まりましたらホームページでお知らせします。では。