Sha256: e2bd47c2ab3d4496fe79d10958a6fa67539460a44f33e978db3a286a7d1c50f0
Contents?: true
Size: 1.18 KB
Versions: 13
Compression:
Stored size: 1.18 KB
Contents
#!/usr/bin/env ruby -w require 'rmagick' imgl = Magick::ImageList.new imgl.new_image(400, 300, Magick::HatchFill.new('white','lightcyan2')) gc = Magick::Draw.new # Draw Bezier curve gc.stroke('red') gc.stroke_width(2) gc.fill_opacity(0) gc.bezier(50,150, 50,50, 200,50, 200,150, 200,250, 350,250, 350,150) # Draw filled circles for the control points gc.fill('gray50') gc.stroke('gray50') gc.fill_opacity(1) gc.circle(50,50, 53,53) gc.circle(200,50, 203,53) gc.circle(200,250, 203,253) gc.circle(350,250, 353,253) # Draw circles on the points the curve passes through gc.fill_opacity(0) gc.circle(50,150, 53,153) gc.circle(200,150, 203,153) gc.circle(350,150, 353,153) # Draw the gray lines between points and control points gc.line(50,50, 50,150) gc.line(200,50, 200,250) gc.line(350,150, 350,250) # Annotate gc.font_weight(Magick::NormalWeight) gc.font_style(Magick::NormalStyle) gc.fill('black') gc.stroke('transparent') gc.text(30,170, "'50,150'") gc.text(30, 40, "'50,50'") gc.text(180,40, "'200,50'") gc.text(210,155,"'200,150'") gc.text(180,270,"'200,250'") gc.text(330,270,"'350,250'") gc.text(330,140,"'350,150'") gc.draw(imgl) imgl.border!(1,1, 'lightcyan2') imgl.write('cbezier6.gif') exit
Version data entries
13 entries across 13 versions & 3 rubygems