require "rvg/rvg" # замовлення RVG (Ruby Vector Graphics) include Magick # замовлення простору назвRVG (Ruby Vector Graphics) RVG::dpi = 72 # встановлення кількості пікселів на дюйм rvg = RVG.new(2.5.in, 2.5.in).viewbox(0,0,250,250) do |с| # створення зображення шириною 2.5*72=180 # і висотою 2.5*72=180 пікселів с.background_fill = '#008000' # тло темно зеленого кольору, # інакше - усталене значення 'none' - тло прозоре с.g.translate(100, 150).rotate(-30) do |body| # створення групи методом g, до всіх елементів якої буде застосовано: # паралельне перенесення на вектор (100, 150) # і поворот на кут 30º проти руху годинникової стрілки body.styles(:fill=>'yellow', # заповнення жовтим кольором :stroke=>'black', # контур чорним кольором :stroke_width=>2) # ширина контуру 2 пікселі body.ellipse(50, 30, 0, 0) # еліпс з півосями 50 і 30 і центром (0, 0) body.rect(45, 20, -20, -10).skewX(-35) # прямокутник зі сторонами 45, 20, верхнім лівим кутом (-20,-10) # і перекосом осі X на 35º для отримання похилого паралелограма # є ще такі фігури: circle, line, path, polygon, and polyline. end с.g.translate(130, 83) do |head| # створення групи методом g, до всіх елементів якої буде застосовано: # паралельне перенесення на вектор (130, 83) head.styles(:stroke=>'black', :stroke_width=>2) # чорний контур ширини 2 head.circle(30).styles(:fill=>'yellow') # круг жовтого кольору з радіусом 30 і центром (0,0) - голова head.circle(5, 10, -5).styles(:fill=>'black') # круг чорного кольору з радіусом 5 і центром (10,-5) - око head.polygon(30,0, 70,5, 30,10, 62,25, 23,20).styles(:fill=>'orange') # 5-кутник помаранчевого кольору - дзьоб end foot = RVG::Group.new do |_foot| # створення групи поза полотном с _foot.path('m0,0 v30 l30,10 l5,-10, l-5,-10 l-30,10z'). # ламана для зображення лапи styles(:stroke=>'black', :stroke_width=>2, :fill=>'orange') # чорний контур ширини 2 з помаранчевим заповненням end с.use(foot).translate(75, 188).rotate(15) # додавання на полотно створеної групи с.use(foot).translate(100, 185).rotate(-15) с.text(125, 30) do |title| title.tspan("каченя ").styles( :text_anchor=>'end', :font_size=>32, :font_family=>'helvetica', :fill=>'black') title.tspan("на лузі").styles( :font_size=>36, :font_family=>'times', :font_style=>'italic', :fill=>'orange') end end rvg.draw.write('duck.png') # запис зображення у файл duck.png