JavaScriptはキャンバスを使用して座標と線を描画します

JavaScriptはキャンバスを使用して座標と線を描画します

この記事では、JavaScriptでキャンバスを使用して座標と線を描く具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。

具体的なコードは次のとおりです。

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>指定された位置に複数の点を描画します</title>
    <スタイル>
        キャンバス{
            境界線: 1px 破線グレー;
        }
    </スタイル>
</head>
<本文>
    <キャンバスid="cvs" 幅="500" 高さ="500"></キャンバス>
</本文>
</html>

jsコード:

<スクリプト>
    var cvs = document.getElementById('cvs');
    var ctx = cvs.getContext('2d');
 
    // 座標軸とキャンバスの右下と左下の余白の間の距離 var padding = {
        トップ:20,
        右:20,
        下:20,
        残り:20
    }
    // 座標軸の矢印の幅と高さ var arrow = {
        幅:12,
        高さ:20
    }
    // 座標軸上の頂点の座標を見つける var vertexTop = {
        x:パディング.左、
        y:パディング.上
    }
    // 座標軸の原点の座標を見つける var origin = {
        x:パディング.左、
        y:cvs.height - padding.bottom
    }
    // 座標軸の右頂点の座標を見つける var vertexRight = {
        x:cvs.width - padding.left、
        y:cvs.height - padding.bottom
    }
 
    // 線の幅を設定 ctx.lineWidth = 2;
    //座標軸の2本の線を描画します ctx.beginPath();
    ctx.moveTo(頂点の x 座標、 頂点の y 座標);
    ctx.lineTo(原点x、原点y);
    ctx.lineTo(頂点右端の x と y );
    ctx.stroke();
 
    //矢印の描き方//上に矢印を描く// ^
    // |
    // |
    ctx.beginPath();
    ctx.moveTo(頂点トップのx、頂点トップのy);
    ctx.lineTo(頂点の x - 矢印の幅/2、頂点の y + 矢印の高さ);
    ctx.lineTo(頂点の x 軸、 頂点の y 軸 + 矢印の高さ / 2);
    ctx.lineTo(頂点の x 軸 + 矢印の幅/2、頂点の y 軸 + 矢印の高さ)。
    ctx.fill();
 
    // 右側に矢印を描画します // --->
    ctx.beginPath();
    ctx.moveTo(頂点右.x、頂点右.y);
    ctx.lineTo(頂点右のx - 矢印の高さ、頂点右のy - 矢印の幅);
    ctx.lineTo(頂点右.x - 矢印の高さ/2、頂点右.y);
    ctx.lineTo(vertexRight.x - arrow.height,vertexRight.y + arrow.width);
    ctx.fill();
 
    /*
     * 座標軸上の指定された位置に点を描画します。座標アルゴリズム:
     * 点の x 軸: 原点の x 座標 + 点から原点までの水平距離 * 点の y 軸: 原点の y 座標 - 点から原点までの垂直距離 */
    //ポイントの座標を定義します var points = [[10,10],[50,50],[90,90],[130,130],[170,170],[200,200]];
    // 座標に点を描画し、ループを使用して配列内の座標を反復処理します // 色を設定します ctx.fillStyle = "green";
    points.forEach(function(arr){
        ctx.fillRect(origin.x + arr[0],origin.y - arr[1],5,5);
    });
    // ポイントに基づいて線を接続します // 再描画を防ぎます ctx.beginPath();
    ctx.lineWidth = 2;
    ctx.strokeStyle = "黄色";
    points.forEach(関数(arr) {
        ctx.lineTo(origin.x + arr[0] + 1.8、origin.y - arr[1] + 1.8);
    });
    //Strokeectx.stroke();
</スクリプト>

効果は以下のとおりです。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • SpringとDisruptorを統合する簡単な例
  • Java ベースの NIO の紹介と使用
  • Java 実践: Spring を使用してバーコードと検証コードを開発する
  • Java の sleep() と wait() の違いのまとめ
  • JavaScript コンソールのその他の機能
  • Java 実践: シティポリフォン処理
  • Java 実用的な敏感な単語フィルター
  • Java 実践: Foodie Alliance 注文システム
  • Java の基礎: リスト要素のソートパフォーマンスの比較
  • Java マルチスレッド ディスラプターの紹介

<<:  Nginx 構成検出サービスのステータスを実装する方法

>>:  Linux における mv コマンドの高度な使用例

推薦する

HTML でさまざまなスペースの特徴と表現を探る (推奨)

I. 概要HTML テンプレートを作成するときに、テキスト レイアウトの手段としてスペースが使用さ...

Linux ifconfig コマンドの使用

1. コマンドの紹介ifconfig (ネットワーク インターフェイスを構成する) コマンドは、ネッ...

MySQL 結合クエリ構文と例

接続クエリ:これは、2 つのクエリ (またはテーブル) の各行をペアで接続した結果です。つまり、1 ...

JavaScript 配列の include と Reduce の基本的な使用法

目次序文配列.プロトタイプ.includes文法パラメータ戻り値例配列プロトタイプの削減文法パラメー...

高品質なJavaScriptコードの書き方

目次1. 読みやすいコード1. 統一コード形式2. マジックナンバーを削除する3. 単一機能原則2....

要素 UI に基づいてクエリ コンポーネントを段階的にカプセル化する方法

目次関数基本的なクエリ関数クエリ条件の初期化ページのレンダリングクエリと表示の最適化をさらに強化プル...

Ubuntu Server 16.04 MySQL 8.0 のインストールと設定のグラフィックチュートリアル

Ubuntu Server 16.04 MySQL 8.0 のインストールと設定のグラフィックチュー...

Vue のレスポンシブ原則と双方向データの詳細な分析

応答性を実現するための object.defineProperty の理解observe/watch...

CSS の位​​置属性 (absolute|relative|static|fixed) の概要と応用

まず、CSS3 Api の position 属性の定義を見てみましょう。 static: 特別な配...

MySQL プロセス制御 IF()、IFNULL()、NULLIF()、ISNULL() 関数

MySQL では、IF()、IFNULL()、NULLIF()、および ISNULL() 関数を使用...

CSS 使用のヒントのまとめ

最近、ブログのアップグレードを始めました。テンプレートを変更する過程で、CSS スタイルシートを書き...

Javascript で SessionStorage と LocalStorage を使用する方法

目次序文SessionStorage と LocalStorage の紹介SessionStorag...

MySQL で行を列に変換したり、列を行に変換したりする詳細な例

mysql 行から列へ、列から行へ難しい文章ではないので、詳しく説明はしません。文章を読むときは、一...

Windows Server 2016 標準キー アクティベーション キー シリアル番号

Windows Server 2016 アクティベーション キーを皆さんと共有したいと思います。wi...

アプレットにおけるwx.getUserProfileインターフェースの具体的な使用

最近、WeChatミニプログラムは、監査ミニプログラムのwx.loginおよびwx.getUserI...