File: cairo-context-path.html

package info (click to toggle)
libcairo-ruby 1.8.1-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 2,476 kB
  • ctags: 5,116
  • sloc: ruby: 9,621; ansic: 6,413; sh: 19; makefile: 3
file content (77 lines) | stat: -rw-r--r-- 2,832 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html 
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8" />
<title>Cairo::Context::Pathモジュール</title>
<link href="../doc.css" type="text/css" rel="stylesheet" />
</head>
<div class="footer">
  <ul>
    <li><a href="./">索引</a></li>
  </ul>

</div>
</body>

<h1><a name="label-0" id="label-0">Cairo::Context::Pathモジュール</a></h1><!-- RDLabel: "Cairo::Context::Pathモジュール" -->
<p>パスに関する便利なメソッドを<a href="cairo-context.html">Cairo::Context</a>に提供するモ
ジュールです。実験的なものでAPIは変更される可能性があります。</p>
<p>cairoにはないrcairoでの拡張です。</p>
<h2><a name="label-1" id="label-1">インタンスメソッド</a></h2><!-- RDLabel: "インタンスメソッド" -->
<dl>
<dt><a name="label-2" id="label-2"><code>map_path_onto(<var>path</var>)</code></a></dt><!-- RDLabel: "map_path_onto" -->
<dd>
<p>コンテキストが持っているパスを<var>path</var>の上に配置しま
す。以下のようにすると円上にテキストを配置することがで
きます。</p>
<pre>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</pre></dd>
<dt><a name="label-3" id="label-3"><code>transform_path(<var>path</var>) {|<var>x</var>, <var>y</var>| ...}</code></a></dt><!-- RDLabel: "transform_path" -->
<dd>
<p><var>path</var>の各点をブロックで変換します。Array#collectの
ようなものです。以下は、パスを縦横それぞれ2倍の大きさに
する実用的ではない例です。(こういうときは
<a href="cairo-context.html#label-98">Cairo::Context#scale</a>を使いましょう。)</p>
<pre>transformed_path = cr.transform_path(cr.copy_path) do |x, y|
  [x * 2, y * 2]
end
cr.new_path
cr.append_path(transformed_path)</pre>
<ul>
<li>path: 変換対象のパス</li>
<li>x: 点のx座標</li>
<li>y: 点のy座標</li>
<li>戻り値: 変換されたパス</li>
</ul></dd>
</dl>
<h2><a name="label-4" id="label-4">参考</a></h2><!-- RDLabel: "参考" -->
<ul>
<li><a href="cairo-context.html">Cairo::Context</a></li>
<li><a href="index.html#label-0">索引</a></li>
</ul>
<h2><a name="label-5" id="label-5">変更履歴</a></h2><!-- RDLabel: "変更履歴" -->
<ul>
<li>2007-04-30: kou: スタート。</li>
</ul>

<div class="footer">
  <ul>
    <li><a href="./">索引</a></li>
  </ul>

</div>
</body>

</html>