shonen.hateblo.jp

やったこと,しらべたことを書く.

Kuin で atan2 を実装

atan2 が無かったので.

func atan2(y: float, x: float): float
    ; 参考: https://cpprefjp.github.io/reference/cmath/atan2.html
    if (y = 0.0)
        ret x < 0.0 ?(lib@pi, 0.0)
    elif (x = 0.0)
        ret y < 0.0 ?(-lib@pi/2.0, lib@pi/2.0)
    end if
    var a : float :: lib@atan(y / x)
    if (x < 0.0)
        do a :+ lib@pi
    end if
    ret a < lib@pi ?(a, a - lib@pi*2.0)
end func

本当はゲームを記事にする予定だったんだけれども.