Cairo::Context::Pathモジュール

パスに関する便利なメソッドをCairo::Contextに提供するモ ジュールです。実験的なものでAPIは変更される可能性があります。

cairoにはないrcairoでの拡張です。

インタンスメソッド

map_path_onto(path)

コンテキストが持っているパスをpathの上に配置しま す。以下のようにすると円上にテキストを配置することがで きます。

cr.circle(100, 100, 50)
cr.set_source_color(:blue)
cr.stroke_preserve
circle_path = cr.copy_path_flat

cr.new_path
# cr.move_to(100, 0) # 円上を時計周りに100移動
cr.text_path("ABCDE")
cr.map_path_onto(circle_path)
cr.set_source_color(:red)
cr.fill
transform_path(path) {|x, y| ...}

pathの各点をブロックで変換します。Array#collectの ようなものです。以下は、パスを縦横それぞれ2倍の大きさに する実用的ではない例です。(こういうときは Cairo::Context#scaleを使いましょう。)

transformed_path = cr.transform_path(cr.copy_path) do |x, y|
  [x * 2, y * 2]
end
cr.new_path
cr.append_path(transformed_path)

参考

変更履歴