#!ruby -Ks # -*- mode: ruby; encoding: sjis -*- # Last updated: <2014/01/14 11:49:48 +0900> # # Window.drawMorph の描画テスト # # 分割数を増やすと見た目の不自然さがどのように改善するか? # → そこそこ改善してくれる # # 遠近感をつけて変形してくれるのか? # → 水平な線の位置を見る限り、遠近感をつけないで変形してる require 'dxruby' # グリッド画像を生成 def get_grid_image(w, h) img = Image.new(w, h, [64, 128, 255]) dt = [[10, 8, C_BLUE], [5, 4, C_WHITE]] dt.each do |d| d[0].times do |i| x = (w / d[1]) * i img.line(x, 0, x, h, d[2]) img.line(0, x, w, x, d[2]) end end img.line(w - 1, 0, w - 1, h, dt[1][2]) img.line(0, h - 1, w, h - 1, dt[1][2]) return img end img = get_grid_image(64, 64) Window.loop do break if Input.keyPush?(K_ESCAPE) # 元画像を描画 Window.draw(Window.width - img.width - 8, 2, img) # ただの真四角として描画 w = 200 d = 70 x, y = 10, 10 Window.drawMorph(x, y, x + w, y, x + w, y + w, x, y + w, img) # 台形に変形して描画 x, y = 220, 10 Window.drawMorph(x + d, y, x + w - d, y, x + w, y + w, x, y + w, img) # 台形に変形して描画。分割数を変更 x, y = 10, 240 Window.drawMorph(x + d, y, x + w - d, y, x + w, y + w, x, y + w, img, :dividex => 2, :dividey => 2) # 台形に変形して描画。分割数を変更 x, y = 220, 240 Window.drawMorph(x + d, y, x + w - d, y, x + w, y + w, x, y + w, img, :dividex => 4, :dividey => 4) end