矢印を描く命令

難しい曲線の命令の定義が続いたので、少しここで休憩しましょう。

ただの 無向線分は「線」命令で簡単に表せますが、有向線分を表したい場合もあるでしょう。そこで、線に矢尻をつけた矢印を描く命令を作ってみます。

矢尻比率とは数値=0.2
矢角度とは数値=PI/6

# 「100,200から300,400へ矢印」のように使う
●矢印({グループ=?母艦}OBJのX1,Y1からX2,Y2へ)
 Rとは数値。θとは数値。ΔXとは数値。ΔYとは数値
 OBJのX1,Y1からX2,Y2へ線
 ΔX=X1-X2。ΔY=Y1-Y2
 ΔX,ΔYをR,θへ極座標変換
 Rに矢尻比率を直接掛ける
 R,θ+矢角度をΔX,ΔYへデカルト座標変換
 OBJのX2,Y2からX2+ΔX,Y2+ΔYへ線
 R,θ-矢角度をΔX,ΔYへデカルト座標変換
 OBJのX2,Y2からX2+ΔX,Y2+ΔYへ線

●デカルト座標変換(R,θを{参照渡し}X,{参照渡し}Yに|Yへ)
 X = R * COS(θ)
 Y = R * SIN(θ)

!HALF_PIとは数値=PI/2

●偏角(X,Yの)
 もしXが0ならば
  もしY>0ならば
   HALF_PIを戻す
  違えば # もしY≦0ならば
   -HALF_PIを戻す
 違えば、もしX>0ならば
  ARCTAN(Y/X)を戻す
 違えば # もしX<0ならば
  ARCTAN(Y/X)+PIを戻す

●極座標変換(X,Yを{参照渡し}R,{参照渡し}θへ|θに)
 R=HYPOT(X,Y)
 θ=X,Yの偏角

中身は3本の線分を組み合わせているだけなので、実に単純です。今まで作った命令を利用して簡潔に記述できていますね。単純な分応用も利かせやすいので、一筆書きの矢印や、両側に矢尻がついた矢印など、色々工夫ができるでしょう。試しに作ってみるのがいいでしょう。