意馬心猿 - いばしんえん

欲望のままにプログラミング

<Ruby/>Rubyでルビーを描画してみた

"Cairoでキレイなフラットなルビーを描画してみよう!”

 

Cairoのインストール等はこちら

 

今回はRubyのプログラミングの練習も兼ねて、プログラムで絵を描いてみました。

 

イラレだったら5分で終わるところが、2時間もかかっちゃいました 笑

 

</>ruby-plot.rb

描画結果 ↓

f:id:santamalia:20160215182252p:plain

  •  Cairoに初めて触ったので基本move_toメソッド、line_toメソッドゴリ押しです。
  • context.set_source_rgb(0.149,0.196,0.220) は最初整数値を入れていて、”あれ?おっかしいな〜、全然思ってる色にならへん。”と思っていたら案の定、少数表記でした。
  • move_to(x1,y1); line_to(x2,y2); で(x1,y1)から(x2,y2)まで線を引くという意味になります。
  • 究極のゴリ押しは全座標を書き下すことですがさすがにそれは面倒すぎたので、直線が交わるところの座標を何個か取ってきて配列p[ ]に入れて、eachメソッドで処理しています。
  • eachの中がmove_toとline_toが逆なのは、もし同じだと、moveとlineが同じ座標を指すので線が引かれなくなってしまうからです。
  • p[ ]は右側半分だけが入っていて、x座標を 1-x として、つまり真ん中を中心として折り返して、minus_xyという配列に代入しています。
  • そして配列xyとminus_xyを結合した配列をorderとしています。

 

プログラム初心者の方がいれば、良い練習となるのでオススメです!