Wednesday, March 11, 2009

RMagickで放射ストライプを描画する

RMagickで放射ストライプを描画するには、以下のコードを実行します。


require 'RMagick'
include Magick

#画像サイズ
sx=200
sy=200
#放射ストライプの中心
cx=120
cy=120
#ストライプ数
rays=18
sr = 360/rays

# 放射ストライプを描画する
images = ImageList.new
images.new_image(sx, sy){
self.background_color = "white"
}
rays.times { |rc|
points = [cx, cy,
cx+Math.cos(Math::PI*(sr*rc)/180)*sx,
cy+Math.sin(Math::PI*(sr*rc)/180)*sy,
cx+Math.cos(Math::PI*(sr*rc+sr/2)/180)*sx,
cy+Math.sin(Math::PI*(sr*rc+sr/2)/180)*sy
]
dr = Draw.new
dr.fill = "#99bbff"
dr.polygon(*points)
dr.draw(images);
}

images.write("sample903a.png")

exit


出力画像(sample903a.png)


動作環境
ruby1.8.6, rmagick2.7.1

関連項目
RMagickでへこんだ影つき円を描画する

No comments: