javascript逆引きレシピ初版の362頁にて
キャンバスに直線を描画したい
パス(path)を利用します。パスとは、コンテキストで管理される座標集合のこと。
CanvasAPIでは、パスで管理された座標に従って、直線や曲線を描画、あるいは該当の領域を塗りつぶすことになります。
コンテキストは、こちらの通り解釈すると文脈とあるので、文脈で管理される座標集合となります。
座標なら理解できますが、文脈と集合が付くことで理解できなくなります。この文脈で管理される座標集合とは何なのでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
ベストアンサー
前も申しましたが「コンテキスト」即ち「文脈」と言う言葉そのものにさほど意味はありません. **「グラフィックの状態を管理するもの」とか「一連の操作」**程度のものと考えて下さい.
NOTE:
和訳された言葉の元々の意味に引きずられて納得し難いのは判ります. が, そこに囚われては先に進めません. こういうものはもっとcanvas機能について理解を深めた後に直感的に「なるほど, やっぱcontextしかねーよな」とひらめくものです.
まずcanvas
要素に限らず, (一般的なスクリーンに描画しうる)グラフィックとは**「座標と色の対応の集合」**である点に着目して下さい.
canvas
要素にグラフィックを描く際に, 2Dコンテキスト(CanvasRenderingContext2D
)を選択した場合, 2Dコンテキストは下記の手法でグラフィックをcanvas
要素に描きます.
canvas
グラフィック上に左上を原点とする座標平面を定義します.- この座標平面上にパス図形と呼ばれる領域を決めます.(描画対象となる座標集合の定義)
- パス図形に沿って線を引いたり図形を塗りつぶしたりします.(座標集合に対して色を指定する=ペイント処理)
この意味はコードで見た方が判りやすいでしょう.
JavaScript
1//canvas要素を取得する 2const canvas = document.getElementByID("canvas"); 3canvas.width = 200; canvas.height = 200; 4 5//2Dコンテキストを選択する 6const ctx = canvas.getContext("2d"); 7 8//パス図形を定義する=座標集合 9//2Dコンテキストオブジェクトのメソッドを呼び出している 10//・・・これらは全て2Dコンテキスト内で管理されている 11ctx.beginPath(); 12ctx.moveTo(50,50); 13ctx.lineTo(100,50); 14ctx.lineTo(100,100); 15ctx.lineTo(50,100); 16ctx.closePath(); 17 18//パス図形に沿って図形を描く 19ctx.stroke();//線を引く 20ctx.fill();//塗りつぶす 21
このように, 2Dコンテキストでは図形が2Dコンテキスト内部で管理されています. これが「文脈で管理される座標集合」の真意です.
座標と色の対応の集合
というのは、例えば(x,y)という部分に赤色、(a,b)という部分に白色という各々の座標に対しての色の対応というか指定が合って、それが集合したものがグラフィック、つまり画像であるという認識であっておりますか。
はい, そのとおりです.
いまあなたが目にしているディスプレイに表示されているものがグラフィックであり, よく目を凝らしてみると, 微細な色の着いた点の集まり(集合)であることが判るでしょう.
この座標平面上にパス図形と呼ばれる領域を決めます.(描画対象となる座標集合の定義)
パス図形というのは下記のような画像を想像したのですが、座標集合というのは、x,yで表せられるいくつかの座標を線(パス)で結び形にしたもののことを言っているのでしょうか。
http://www.coprosystem.co.jp/tipsblog/img/img_tips_131018_12.jpg
間違っておったら申し訳ありません。
はい, そのとおりです.
- この座標集合に沿ったグラフィック(線)=
stroke
メソッド,
内部の塗りつぶし=fill
メソッド
となります
また重ね重ね申し訳ありませんが、座標集合というのは、質問文に記載してる書籍の造語なのでしょうか。それとも確固たる用語なのでしょうか。
初等数学(中学校数学/高校数学)における「座標」と「集合」の概念を組み合わせて使っている(座標の集まり)だけで, ほぼ常識の範疇の用語です.
NOTE:
コンピュータグラフィックを扱う分野では様々な用語や概念を数学分野から引用しているため, 難解な用語が出てきた場合は, 必ず背景に数学的な裏付けがあるものとお考え下さい.
投稿2018/01/16 10:57
編集2018/01/17 10:57総合スコア4756
0
英語をそのまま日本語にしようとするから理解が進まないのではないでしょうか。
「意味」は「自国語になおした場合の言葉そのもの」ではなく「考え方や概念そのもの」まで見ないと理解は進みません。
ITの世界や小池都知事のコメントにはよくこの手の英語がでてきますが、無理やり存在する日本語に訳して単語だけ見せられてもピンと来ませんよね?
それと同じです。
提示されている質問の回答をきちんと読んで、「どういうものか」を理解するように努めてください。
投稿2018/01/16 10:59
総合スコア80850
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/17 06:02
0
窓たちでは何か柔らかい服を起動すると大抵は窓が開きます。
主な窓にはしばしば教科書箱や無線箱がありますが、それらの箱も窓の一種です。
ネズミは便利ですね。
追記
言葉の意味は文脈で変わります。
一部だけ拾い読みするのではなく、前後をちゃんと読み、その文脈でその言葉は何を意味しているのかを捉えましょう。
投稿2018/01/16 10:54
編集2018/01/16 10:59総合スコア28660
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/16 11:18
2018/01/17 06:12
2018/01/17 10:25
2018/01/18 02:11
退会済みユーザー
2018/01/18 09:26
2018/01/18 09:50
2018/01/18 10:31
2018/01/19 01:11
2018/01/19 02:08
2018/01/19 02:47