
題名の件、簡単な図形を作れることは知っていますが、
簡易的なイラストとかを作ることはできるのでしょうか?
例えばイナズママークとか。
https://illust8.com/contents/1085
lineToを繋げて作れるかと思ったのですが、思うように線が引けません。
教えて頂きたくお願い致します。
No.2ベストアンサー
- 回答日時:
こんにちは
>思うように線が引けません。
だけでは、「まったく線が引けない」から「違う位置に引けてしまう」など様々なので、「何がわからないのか」がわかりません。
「線を引く」だけのサンプルは、検索すればいくらでも見つかるでしょうから、「線を引くこと」はできているものと想定します。
デフォルトのcanvasの座標は、左上を原点として、右方向がx座標(増加)、下方向がy座標(増加)となっていますので、一般的な座標系とはy軸が逆転しています。(HTMLでの座標系と同様ですが…)
扱う上で面倒であれば、y軸を逆転して通常の方向にしたり、原点を中央に移動(や回転)することも可能です。
以下、「イナズママーク」での一例。
※ サイズはcanvasサイズに依存します。
※ 座標データはテキトーです。
<script>
{
let canvas = document.getElementById('canvas'),
cw = canvas.clientWidth,
ch = canvas.clientHeight,
u = Math.min(cw/40, ch/80),
ctx = canvas.getContext('2d');
let i, d = [[32,41],[19,41],[31,65],[3,33],[14,33]];
ctx.translate(cw/2, ch/2);
ctx.scale( u, -u);
ctx.fillStyle = '#FF0';
ctx.beginPath();
ctx.moveTo(-16, -32);
for(i=0; i<d.length; i++) ctx.lineTo(d[i][0]-16, d[i][1]-32);
ctx.fill();
}
</script>
No.4
- 回答日時:
No2です。
>続けて、
>ctx.lineTo(0,100),
>ctx.linTo(80,0)とやることで~~
出来上がった図を観察してみればわかるのではないかと思いますが・・・
lineTo(x, y)、moveTo(x, y) の x, y は、座標系の x値, y値 であって、ペンの移動量を示すものではありません。
https://developer.mozilla.org/ja/docs/Web/API/Ca …
No.3
- 回答日時:
>ctx.lineTo(0,100),
>ctx.linTo(80,0)とやることで
> ______
> |
> |
> |_______
>右に長さ80、下に長さ100、右に右に長さ80という、
>上記の様な線を引けるという感覚ですが、間違っているのでしょうか?
なんかタートルグラフィック風ですね(^^;
lineToの座標は Canvasの左上が常に原点。
つまり、ひどく間違ってます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Google マップにマーカーと同心...
-
デジタル時計の時刻合わせの方...
-
マイページはどこを開くの
-
[Java] Edgeでのアドレスバー非...
-
Youtubeのバグ
-
Outlookでこのような表示がされ...
-
パソコンを起動させたら文字の...
-
スクリプトって、何ですか?ど...
-
リンク時、親ウインドウを最前...
-
「Cancel = True」とはどういう...
-
Outlookのエラー表示について
-
小さな表示窓の呼び方は
-
サブウィンドウを常に最前面に...
-
LINEのポップアップの順番を教...
-
Javascript_submit()完了後に処...
-
MFCを使って、ひとつのkey(CStr...
-
スライドショーを全画面でなく...
-
Edge Chrom などの超初心者質問...
-
文章の自動スクロール
-
window.open("about:blank")
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Yahoo地図でマーカーを表示した...
-
VBAでオブジェクトがありません...
-
【javascript】住所から郵便番...
-
どうして+3
-
逆ジオコーディングについて
-
WordのVBAについて
-
GoogleMapsAPI ルート案内
-
Google Maps API v2 現在位置か...
-
地図画面移動のプログラムについて
-
map = new google.maps.Mapで作...
-
Google Mapを利用した情報追加...
-
PHPで入力された住所で地図表示
-
Googlemapsapi V=3ルート検索
-
郵便番号で検索⇒距離順に結果リ...
-
楽天APIについて、グーグルマッ...
-
aspのセレクトボックスにDBのデ...
-
google map の画面サイズを小さ...
-
googlemapで複数条件絞り込みで...
-
既存のgoogleマップに半径表示...
-
onMouseOver、onMouseOutイベン...
おすすめ情報
回答ありがとうございます。
思ったように線を引けないというのは、
例えば、座標を右に線を引くと、
ctx.lineTo(80,0)と右に線を引けますが、
続けて、
ctx.lineTo(0,100),
ctx.linTo(80,0)とやることで
______
|
|
|_______
右に長さ80、下に長さ100、右に右に長さ80という、
上記の様な線を引けるという感覚ですが、間違っているのでしょうか?
私はこれで、線を繋げてイナズママークを作ろうとしました。
ですが、線が思ったような方向や長さにならず当惑しました。
そもそも座標点の概念がよくわかっていなのでしょうか?
色々Webサイトを見ても基本的な書き方しかわからず、
どうすれば自分の思った方向や長さに作れるか
教えて頂きたくお願い致します。