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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
---
title: CanvasRenderingContext2D.strokeRect()
slug: Web/API/CanvasRenderingContext2D/strokeRect
tags:
- API
- Canvas
- CanvasRenderingContext2D
- Method
- Reference
translation_of: Web/API/CanvasRenderingContext2D/strokeRect
---
<div>{{APIRef}}</div>
<p>Canvas 2D API の <code><strong>CanvasRenderingContext2D</strong></code><strong><code>.strokeRect()</code></strong> メソッドは、矩形の輪郭を現在の {{domxref("CanvasRenderingContext2D.strokeStyle", "strokeStyle")}} とその他のコンテキスト設定によって描画します。</p>
<p>このメソッドは、現在のパスを変更せずキャンバスに直接描画するため、 その後の {{domxref("CanvasRenderingContext2D.fill()", "fill()")}} または {{domxref("CanvasRenderingContext2D.stroke()", "stroke()")}} の呼び出しには影響を与えません。</p>
<h2 id="構文" name="構文">構文</h2>
<pre class="syntaxbox">void <em>ctx</em>.strokeRect(<em>x</em>, <em>y</em>, <em>width</em>, <em>height</em>);
</pre>
<p><code>strokeRect()</code> は、座標 <code>(x, y)</code> を始点とする大きさ <code>(width, height)</code> の矩形の輪郭を描画します。</p>
<h3 id="パラメーター" name="パラメーター">パラメーター</h3>
<dl>
<dt><code>x</code></dt>
<dd>矩形の始点となる x 座標。</dd>
<dt><code>y</code></dt>
<dd>矩形の始点となる y 座標。</dd>
<dt><code>width</code></dt>
<dd>矩形の幅。正の値で右方向、負の値で左方向に描画します。</dd>
<dt><code>height</code></dt>
<dd>矩形の高さ。正の値で下方向、負の値で上方向に描画します。</dd>
</dl>
<h2 id="例" name="例">例</h2>
<h3 id="矩形の輪郭" name="矩形の輪郭">矩形の輪郭</h3>
<p>この例では、 <code>strokeRect()</code> により矩形を緑色の輪郭で描画します。</p>
<h4 id="HTML" name="HTML">HTML</h4>
<pre class="brush: html"><canvas id="canvas"></canvas>
</pre>
<h4 id="JavaScript" name="JavaScript">JavaScript</h4>
<p>以下に示される矩形の左上角の座標は (20, 10) です。幅は 160 で、高さは 100 です。</p>
<pre class="brush: js; highlight:[4]">const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
ctx.strokeStyle = 'green';
ctx.strokeRect(20, 10, 160, 100);
</pre>
<h4 id="実行結果" name="実行結果">実行結果</h4>
<p>{{ EmbedLiveSample('矩形の輪郭', 700, 180) }}</p>
<h3 id="様々なコンテキスト設定の適用">様々なコンテキスト設定の適用</h3>
<p>この例では、面取りされた太い線の矩形を影付きで描画します。</p>
<h4 id="HTML_2">HTML</h4>
<pre class="brush: html"><canvas id="canvas"></canvas>
</pre>
<h4 id="JavaScript" name="JavaScript">JavaScript</h4>
<pre class="brush: js">const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
ctx.shadowColor = '#d53';
ctx.shadowBlur = 20;
ctx.lineJoin = 'bevel';
ctx.lineWidth = 15;
ctx.strokeStyle = '#38f';
ctx.strokeRect(30, 30, 160, 90);</pre>
<h4 id="実行結果_2">実行結果</h4>
<p>{{ EmbedLiveSample('様々なコンテキスト設定の適用', 700, 180) }}</p>
<h2 id="仕様" name="仕様">仕様</h2>
<table class="standard-table">
<tbody>
<tr>
<th scope="col">仕様書</th>
<th scope="col">策定状況</th>
<th scope="col">コメント</th>
</tr>
<tr>
<td>{{SpecName('HTML WHATWG', "scripting.html#dom-context-2d-strokerect", "CanvasRenderingContext2D.strokeRect")}}</td>
<td>{{Spec2('HTML WHATWG')}}</td>
<td> </td>
</tr>
</tbody>
</table>
<h2 id="ブラウザー実装状況">ブラウザー実装状況</h2>
<p>{{Compat("api.CanvasRenderingContext2D.strokeRect")}}</p>
<h2 id="関連情報">関連情報</h2>
<ul>
<li>このメソッドを定義しているインターフェース: {{domxref("CanvasRenderingContext2D")}}</li>
<li>{{domxref("CanvasRenderingContext2D.strokeStyle")}}</li>
<li>{{domxref("CanvasRenderingContext2D.clearRect()")}}</li>
<li>{{domxref("CanvasRenderingContext2D.fillRect()")}}</li>
</ul>
|