座標系を強くするその2
-2006年2月26日改訂-


直線補間の解説

 今回、勉強したのは2点のライン上に任意の距離で点を打つことをMSXでやってみる。
 このことを直線補間というそうだが、この難しい言葉だけあって
点跡データの開発でどうしても通っていかないといけない難所でもある。
 まず、2点間の距離は X2,Y2を引いてX1,Y1の差を出す。その数値が一時的にZX,ZYに入る。
ZXとZYは三角形の底 辺と高さの数値と思えばいい。
 これが基になる数値に なる。

 この底辺と高さを2乗 する、そして底辺と高さを足して平方根の数値を出す、
1つの公式の中に1つの 公式がある。 これが三平方の定理でZの数値に190が入る。
説明では190の小数点を省いた実数の近似値にしてある。
 
 これとは別に基になる数値からZX::190=?:10とZY:190=?:10という比から
?はXとするなら、ZX とZYに実数が入れば
残りの?を求めると 190が10場合のX座標、Y座標を求めることができる。

 任意というのは10でも30でもかまわない。
ここから数を変化させるにはFOR文を使う、ここまでわかれば高校生だ。
 まず、190という数値は入ったので計算する部分は100行のみになる。
すこし、ZXとZYの数値を使うので新たにXX,YYを加える必要があるかもしれない。
5ずつ距離を変化させる ので、0から5,10,15という距離に点が189まで入るようにしたい。
この計算部分に FOR〜NEXTをかませばよい。STEPには5が入る
 本当にできているか?もう一度画面を見てみるとする、大丈夫だ。
もっとやってみる、今度はCADで使う、1点破線、2点破線をやりたい。
 まず、属性をつくる
111111111111111111
から
111000111000111000

111111001100111111

111111010010111111

とする、これで1の場合 は点を打ち、0の場合は点を打たない
そうすればいい。98では簡単にできたけど、
ここまでやったんだから、MSXで表示してみた。

MSXで破線の出力例

 破線はボロボロ。低解像度のMSXでは無理のようだ。
ちょっとボカシでいけばできなくはないが…実用的ではない。
 せっかくだから、このコーナーでダウンロードできるようにする。

ダウンロード:MSXBASICファイル
[[ 直線補間の計算と線種の出力をダウンロード ]]