
題名の件、簡単な図形を作れることは知っていますが、
簡易的なイラストとかを作ることはできるのでしょうか?
例えばイナズママークとか。
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ランキング
-
郵便番号で検索⇒距離順に結果リ...
-
デジタル時計の時刻合わせの方...
-
エクセルのシート上に別のシー...
-
別フォームから戻ったときのイ...
-
Excelでワードアートや図を常に...
-
マイページはどこを開くの
-
エクセルVBAでフォームのListbo...
-
小さな表示窓の呼び方は
-
Javascript_submit()完了後に処...
-
エクセルでポップアップを出し...
-
Outlookでこのような表示がされ...
-
ウインドウを毎回同じ位置、大...
-
[Java] Edgeでのアドレスバー非...
-
一定時間おきにアラームやポッ...
-
PDFを(htmlのように)無限に縦...
-
Chromeは何で進むボタンが無いの?
-
Visual Basicから Spreadのスク...
-
Excel VBAでの右クリックのポッ...
-
ポップアップと作業ウィンドウ...
-
opener.focus();が利かない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでオブジェクトがありません...
-
GMap Api V3で中心マーカーを表...
-
map = new google.maps.Mapで作...
-
GoogleApiについて質問です。
-
GoogleMapでの距離の測定
-
Yahoo地図でマーカーを表示した...
-
3D空間内の2つの図形の間の角度...
-
どうして+3
-
WordのVBAについて
-
jquery ui mapについて
-
ホームページ上に大きな表を1ペ...
-
google mapに複数マーカーを設...
-
【javascript】住所から郵便番...
-
Google maps API V3 ルート検索
-
Google Maps API で 住所デー...
-
グーグルマップのマイマップ作...
-
GOOGLEマップのマイマップでマ...
-
GoogleMapsでルート内の座標を...
-
逆ジオコーディングについて
-
GoogleMap のマーカーに数値を...
おすすめ情報
回答ありがとうございます。
思ったように線を引けないというのは、
例えば、座標を右に線を引くと、
ctx.lineTo(80,0)と右に線を引けますが、
続けて、
ctx.lineTo(0,100),
ctx.linTo(80,0)とやることで
______
|
|
|_______
右に長さ80、下に長さ100、右に右に長さ80という、
上記の様な線を引けるという感覚ですが、間違っているのでしょうか?
私はこれで、線を繋げてイナズママークを作ろうとしました。
ですが、線が思ったような方向や長さにならず当惑しました。
そもそも座標点の概念がよくわかっていなのでしょうか?
色々Webサイトを見ても基本的な書き方しかわからず、
どうすれば自分の思った方向や長さに作れるか
教えて頂きたくお願い致します。