「tmlib.js 怒濤の 100 サンプル!!」を試す その28

その28。

tmlib.js 怒濤の 100 サンプル!! – Graphics(HTML5 Canvas) 編

今回試すサンプルは「図形-中級(Figure)」の「角丸四角形を描画しよう(塗りつぶし描画)」です。
ではサンプルが掲載されているのでまずは見てみましょう。
中央のボタンを押してみて下さい。
四隅が丸味を帯びた四角形が描画されたと思います。

/*
* 定数
*/
var SCREEN_WIDTH = 465;
var SCREEN_HEIGHT= 465;
tm.main(function() {
// canvas インスタンス生成
var canvas = tm.graphics.Canvas("#world");

// 幅, 高さを指定
canvas.resize(SCREEN_WIDTH, SCREEN_HEIGHT);
// 画面にフィットさせる
canvas.fitWindow();

// ラインを描画
canvas.fillRoundRect(100, 100, 300, 200, 20);
});

今回勉強するのは16行目です。「 fillRoundRect() 」で塗りつぶしの角丸四角形を描画をしています。
角丸とはサンプルを見てもらった通り角を丸めたものを言います。 「 R 」と表現されることもあり、設計図等でよく使います。
その9
で勉強した矩形描画の応用といった感じでしょうか。

基準点(その9でいうA地点)を決め、そこから終点(その9でいうB地点)までを相対距離で四角形の大きさを決めます。 そして角丸の大きさを指定します。
「 0 」と指定すると角丸をしていない普通の矩形になります。 指定しないと描画してくれませんので「 fillRoundRect() 」で普通の矩形を描画したい時は「 0 」としてください。

パラメータは順番に「基準点のX座標基準点のY座標基準点からのX軸方向への距離基準点からのY軸方向への距離角丸の大きさ」となります。
「 角丸の大きさ 」とは何なのかということですが、実は指定しているのは実は円の半径なんです。
矩形にの四隅それぞれに対して、指定した半径の円を重ねて交差していない部分を削除しています。(あくまで理解しやすくするための表現です。内部処理はちょっと違いますが) ですので、指定する値を大きくすると丸味の強い矩形が出来上がるというわけですね。 図表してみました。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です