tips_img_040 - spoolkitamura/nyle-doc-jp GitHub Wiki
画像を回転するには?
画像自体を直接回転させるようなオプションはありませんが、
座標変換系のメソッドを使って画像を回転させることができます。
- 画像を表示する(そのまま)
require 'nyle'
class Screen < Nyle::Screen
def initialize
super(200, 300, {bgcolor: :IVORY})
@image = Nyle.load_image("./j1.png", {color_key: :WHITE})
end
def draw
Nyle.draw_image(90, 210, @image, {pos: :CENTER})
end
end
Screen.new.show_all
Nyle.main
[実行結果]
- 画像を表示する(180度回転)
下記のように、translate
メソッドで座標系の原点に移動させてから
さらに rotate
メソッドで座標を回転させ、その新たな座標系の
原点(0, 0)に画像を表示させることで画像が回転した状態になります。
なお、save
メソッドのブロックで括っておかないと、
その他の画像や図形などにも変換された座標系が適用されてしまうので
注意が必要です。
require 'nyle'
class Screen < Nyle::Screen
def initialize
super(200, 300, {bgcolor: :IVORY})
@image = Nyle.load_image("./j1.png", {color_key: :WHITE})
end
def draw
Nyle.save do
Nyle.translate(90, 210) # 座標系の原点を(90, 210)に移動
Nyle.rotate(Math::PI) # 座標系を180度回転
Nyle.draw_image(0, 0, @image, {pos: :CENTER}) # 新しい座標系の原点に画像を表示
end
end
end
Screen.new.show_all
Nyle.main
[実行結果]