2019-03-01から1ヶ月間の記事一覧

線分の交点(Ruby)

4点 があるとき、線分 と の交点を求めるメソッド。 require 'matrix' def cross(x1, y1, x2, y2, x3, y3, x4, y4) a = Matrix[[x2 - x1, x3 - x4], [y2 - y1, y3 - y4]] .lup.solve([x3 - x1, y3 - y1]) rescue nil return nil unless a s, t = a[0], a[1] …

Ruby のローカル変数登録について

以下の Ruby コードを見てほしい。 if false a = 1 end p a #=>nil if true nil else b = 1 end p b #=>nil c = 1 if false p c #=>nil while false d = 1 end p d #=>nil いずれも nil を出力し、「undefined local variable or method」の NameError は出…

二次元配列の行(あるいは列)を入れ替える(Ruby)

Julia では簡単とあったので(よく知らない)、Ruby で考えてみた。まず二次元配列を作る。 $ pry [1] pry(main)> ary = (1..100).each_slice(10).to_a => [[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [11, 12, 13, 14, 15, 16, 17, 18, 19, 20], [21, 22, 23, 24, 2…

Ruby と rcairo でベジェ曲線を描いてみる

ベジェ曲線(Wikipedia)は滑らかな曲線を描くために使われるものです。いくつかの「制御点」を指定して描きます。計算はそんなにむずかしくなくて、上の Wikipedia の記事で充分わかりますし、ネット上にわかりやすい記事がたくさんあるので検索してみて下…

Gem 'Ruby2D' でライフゲーム

いつもの得意技(?)のライフゲームです。Ruby 用のグラフィック・ライブラリ 'Ruby2D' を使っています。コード。 lifegame_for_Ruby2D.rb require 'ruby2d' include Ruby2D::DSL class LifeGame CellWidth = 10 Margin = 20 Space = 2 SideWidth = 35 W = …

Gem 'Ruby 2D' で遊ぶ(1)

Ruby でグラフィック表示のできる Gem 'Ruby 2D' で遊んでみました。アニメーションをしています。三角が丸たちの上にあります。色は半透明になっています。 コード。 ruby2d_sample2.rb require 'ruby2d' Width = 500 C = 15 #円の数 R = 20 #円の半径 L = …

Gem 'Ruby 2D' でお絵かきしてみる

これまで Ruby でのグラフィック描画には自作の Gem 'oekaki' を使ってきましたが、高機能で簡単に使える Gem 'Ruby 2D' がリリースされたのでちょっと使ってみました。 www.ruby2d.com インストール Window, Mac, Linux で使えるようですが、Windows は Min…