[JavaScript] fillRectがうまく動作しない

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
dic
記事: 658
登録日時: 15年前
住所: 宮崎県
連絡を取る:

[JavaScript] fillRectがうまく動作しない

#1

投稿記事 by dic » 8年前

JavaScriptでつまづきました。
fillRect(0,0,300,300)で正方形を描画したいのですが、
fillRect(0,0,300,150)の長方形が描画されてしまします。
(0,0,300,300)の中心に円を描画したいと考えています。
どこが悪いところがないか調べてもらえないでしょうか?

コード:

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>上図を描画する</title>
    <style>
        #clock {
            width: 300px;
            height: 300px;
        }
    </style>
     <script> var ctx, x = 150, y = 150;
     function gobj(id) {
        return document.getElementById(id);
    }

    function init() {
        var canvas = gobj("canvas");
        ctx = canvas.getContext("2d");
        paint();
    }

    function paint() {
        ctx.fillStyle = "black";
        ctx.fillRect(0, 0, 300, 300);
        ctx.fillStyle = "yellow";
        ctx.beginPath();
        ctx.moveTo(x,y);
        ctx.arc(x, y, 30, -Math.PI / 4, Math.PI / 4, true);
        ctx.fill();
    }
    </script>
</head>
<body onload="init()">
    <canvas width="300" hegiht="300" id="canvas"></canvas>

</body>
</html>
Chome でも Internet Explorerでも同じでした。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: [JavaScript] fillRectがうまく動作しない

#2

投稿記事 by みけCAT » 8年前

canvasにhegihtという謎の属性は設定されているが高さを指定するheight属性は無いので、高さがデフォルトの150ピクセルになっているようです。
従って、上から150ピクセルの部分とそれより下の部分は描画されません。
canvasの高さを十分大きく設定するといいでしょう。

canvas 要素 - HTML | MDNより引用
height
CSS ピクセルで示した座標空間の高さ。デフォルトでは 150 ピクセルに設定されています。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

dic
記事: 658
登録日時: 15年前
住所: 宮崎県
連絡を取る:

Re: [JavaScript] fillRectがうまく動作しない

#3

投稿記事 by dic » 8年前

>>みけCAT様
私のタイプミスでした。
hegiht から height に変更したところ 300x300の正方形が描画されました。

Visual Studio 2015 commity でタイプミスをなるべく気づくようにしているのですが、
hegith でも エラーが表示されずに今回の問題が起こってしまったようです。
コンパイラ型ならエラーがでるんですが、なかなか JavaScript は神経使います。

解決しました。

閉鎖

“C言語何でも質問掲示板” へ戻る