できる事
1.座標を点(Pointクラス)として扱う
2.Pointを3つ以上格納した配列から領域(Polygonクラス)を生成
3.座標(Point)が領域(Polygon)に含まれているか判定する(contains_point?メソッド)
使ってみる
1.Gemfileに以下を追加してインストール
Gemfile
gem 'pinp', git: 'https://github.com/kimhunter/PointInPolygon.git'
2.requireして使う準備
sample.rb
+ require "pinp"
3.領域を生成するための配列を用意
sample.rb
require "pinp"
+ points = []
4.座標(Point)を作成して配列に格納
※引数には(x軸の値, y軸の値)を指定
sample.rb
require "pinp"
points = []
+ points << Pinp::Point.new(0,0)
+ points << Pinp::Point.new(20,0)
+ points << Pinp::Point.new(20,20)
+ points << Pinp::Point.new(0,20)
5.座標(Point)の集合から領域を生成
sample.rb
require "pinp"
points = []
points << Pinp::Point.new(0,0)
points << Pinp::Point.new(20,0)
points << Pinp::Point.new(20,20)
points << Pinp::Point.new(0,20)
+ pgon = Pinp::Polygon.new points
6. 新しい座標(Point)を作成して生成した領域に含まれるか判定(contains_point?メソッド)
sample.rb
require "pinp"
points = []
points << Pinp::Point.new(0,0)
points << Pinp::Point.new(20,0)
points << Pinp::Point.new(20,20)
points << Pinp::Point.new(0,20)
pgon = Pinp::Polygon.new points
+ puts pgon.contains_point? Pinp::Point.new(10, 10)
+ puts pgon.contains_point? Pinp::Point.new(20.1 ,10)
#=> true
#=> false