以下のスクリプトは画像を1dotづつ表示するベースサンプルなのですが、とりあえず[ line ]命令を使って横一列を表示するデモンストレーションをしてみました。
screen 0, ginfo_dispx, ginfo_dispy, 0, 0, 0{スクリプト内のトグルコメントを入れ替えてください}一応、[ pset ]命令で表示するものも作ってみました。
title "4点をクリックしてください" *main repeat 4 stick a : if a != 256 { wait 1 : continue cnt } x(cnt) = double(mousex) y(cnt) = double(mousey) pset mousex, mousey loop x1 = (x.2 - x) x2 = (x.3 - x.1) y1 = (y.2 - y) y2 = (y.3 - y.1) // 縦2直線の傾き ra = y1 / x1 la = y2 / x2 // 縦2直線の距離 a = sqrt(x1 * x1 + y1 * y1) b = sqrt(x2 * x2 + y2 * y2) if b > a { a = b } rxx = 0.0 lxx = 0.0 rv = x1 / a lv = x2 / a redraw 0 repeat a rxx + rv lxx + lv // 縦2直線の方程式 x1 = rxx + x x2 = lxx + x.1 y1 = ra * rxx + y y2 = la * lxx + y.1 ;↓のスラッシュを一つ消してください //*/ line x1, y1, x2, y2 /*/ a = (x2 - x1) b = (y2 - y1) // 横1直線の傾き w = b / a // 横1直線の距離 d = sqrt(a * a + b * b) xx = 0.0 wv = a / d repeat d xx + wv pset x1 + xx, w * xx + y1 loop //*/ loop redraw 1 goto *main
しかし、どうしても穴の開いた部分ができてしまうので直線を滑らかに表示する方法を考えていただけないでしょうか>お願いします。