JavaScript での HTML キャンバスとページ ストレージ テクノロジの使用に関する詳細な説明

JavaScript での HTML キャンバスとページ ストレージ テクノロジの使用に関する詳細な説明

1. JavaScriptはHTMLでキャンバスを使用する

1. キャンバス: ページ上のグラフィックを描くための特別な領域
2. グラフィックを描くプロセス
(1)キャンバスを作成する:HTML5のキャンバスタグを使用する

<キャンバス id="id" width="幅" height="高さ">
</キャンバス>

(2)JavaScriptでキャンバスを取得する

ドキュメントの要素IDを取得します。

(3)ブラシの準備:描画環境とも呼ばれるコンテキストオブジェクト(ブラシ)は、キャンバス上にグラフィックを描くために使用されます。

 getContext('2d')

3. 描画
(1)線を引く:
A. 初期位置、線の終点(終点)、ストローク(線描画)
B. 2D 平面座標系: キャンバスの左上隅が座標原点 (0,0) です。原点から右に延長すると x 軸が増加し、下に延長すると y 軸が増加します。
C. 線画工程:
a. 初期位置(開始点)を決定する: moveTo(x,y)
b. 接続エンドポイント(終点)を決定する: lineTo(x,y)
c. ストローク:stroke()
D. 線のスタイル
a. 線の幅: lineWidth = 'value'、デフォルトの単位はピクセルです
b. ストロークの色(線の色):strokeStyle = '色の名前または16進数の色の値'
c. エンドポイントの形状: lineCap = 'shape'

  • butt: デフォルト値、端点の形状なし、まっすぐな四角いエッジを表示
  • round: ラウンドエンドポイント
  • 正方形: 正方形の端点

E. ライン パス: 同じキャンバスにいくつの接続エンドポイントを追加しても、パスは 1 つだけです。
a. 新しいパスを開始する: beginPath()
b. パスを閉じる: closePath()
c. パスの塗りつぶし: fill()

ontext.strokeStyle = 'red' //線の色 context.moveTo(10,10); //開始位置 context.lineTo(10,100); //接続の終点(垂直線)
context.lineTo(100,100); //接続エンドポイント(水平線)
context.closePath();//パスを閉じるcontext.stroke();//Strokecontext.fill(); //塗りつぶし

(2)円を描く:arc(x, y, r, 開始角度, 終了角度, 方向)
x、y: 円の中心の座標 r: 円の半径 開始角度: 円周率を指定できます 終了角度: 開始角度と同じ 方向: 描画方向 (時計回り、反時計回り)、true の場合は反時計回り、false の場合は時計回り (デフォルト)

var キャンバス = document.getElementById('cavs');
var コンテキスト = canvas.getContext('2d');
コンテキスト.arc(150,80,50,0,2.0*Math.PI)
コンテキスト.ストローク()

2. ページストレージ技術

セッション追跡技術、HTTPプロトコルはステートレスプロトコルであり、サーバーはセッション追跡技術を使用して、リクエストを送信したクライアントを特定する必要があります。
1. オリジナルの保存方法(セッショントラッキング技術):クッキー経由で保存
(1)サーバーによって生成され、クライアントのブラウザバッファに保存される
(2)クッキー方式のデメリット
A. HTTP メッセージに Cookie が添付されるため、データ トラフィックが目に見えない形で増加します。
B. クッキーは HTTP メッセージ内のプレーンテキストで送信されるため、安全性が低く、簡単に盗まれる可能性があります。
C. クッキーはブラウザに保存され、改ざんされる可能性があります。サーバーはデータを受信した後、そのデータの正当性を検証する必要があります。
D. ブラウザは Cookie の数とサイズを制限しています (通常は 50 個まで、各 Cookie は 4 KB 以下)。これでは複雑なストレージ要件を満たすには不十分です。
2. HTML5ページ保存方式(ウェブストレージ)
(1)localStorage:永続的なローカルストレージ。キーと値の形式で保存されます。ユーザーまたはスクリプトによってクリアされない場合は、ローカル コンピューターに保存されます。
(2)セッションストレージ:
A. セッション: セッション。 Web 開発では、セッションはブラウザが開かれた時点から閉じられる時点までであり、ブラウザが閉じられるとセッションは終了します。
B. sessionStorage: データはブラウザのメモリに保存されます。ブラウザを閉じると、メモリ内のデータは自動的に消去されます。そのライフサイクルはセッションのライフサイクルと同じです
(3) localStorageとsessionStorageの違い
A. ライフサイクルが異なります。localStorage は永続的ですが、sessionStorage はセッションと同じライフサイクルを持ち、セッションが終了するとデータは消えます。
B. 異なる保存場所: localStorage はハードディスクに保存され、sessionStorage はブラウザのメモリ (ブラウザ キャッシュ) に保存されます。

例: キャンバスを使用して棒人間を描く

<本文>
	<キャンバスid="cas" 幅="1000" 高さ="1000"></キャンバス>
</本文>
</html>
<スクリプト>
	var cas = document.getElementById('cas');
	var コンテキスト = cas.getContext('2d');
	// 頭を描画します context.arc(400,100,30,0,2*Math.PI);
	コンテキスト.lineWidth='5';
	コンテキスト.stroke();
	//胴体を描画します context.beginPath();
	コンテキストを400,130に移動します。
	コンテキスト.lineTo(400,140);
	コンテキスト.lineWidth='5';
	コンテキスト.stroke();
	コンテキスト.beginPath();
	コンテキストを400,140に移動します。
	コンテキスト.lineTo(400,260);
	コンテキスト.lineWidth='25';
	コンテキスト.stroke();
	//フォルダーを描画します context.beginPath();
	コンテキストを360,200に移動します。
	コンテキスト.lineTo(440,200);
	コンテキスト.lineTo(440,250);
	コンテキスト.lineTo(360,250);
	コンテキスト.closePath();
	context.fillStyle='#fff';
	コンテキストを埋め込む();
	コンテキスト.lineWidth='2';
	コンテキスト.stroke();
	//腕を描画します context.beginPath();
	コンテキストを400,140に移動します。
	コンテキスト.lineTo(440,200);
	コンテキスト.lineTo(400,240);
	コンテキスト.lineWidth='10';
	コンテキスト.stroke();
	コンテキスト.beginPath();
	コンテキスト.arc(400,240,10,0,2*Math.PI);
	コンテキスト.fillStyle='#000';
	コンテキストを埋め込む();
	// 脚を描画します context.beginPath();
	コンテキストを380,400に移動します。
	コンテキスト.lineTo(400,260);
	コンテキスト.lineTo(420,400);
	コンテキスト.lineTo(400,240);
	コンテキスト.lineWidth='10';
	コンテキスト.stroke();	
	コンテキスト.beginPath();
	コンテキスト.arc(365,400,15,0,1*Math.PI,true);
	コンテキスト.closePath();
	コンテキスト.lineWidth='5';
	コンテキスト.stroke();
	コンテキスト.beginPath();
	コンテキスト.arc(405,400,15,0,1*Math.PI,true);
	コンテキスト.closePath();
	コンテキスト.lineWidth='5';
	コンテキスト.stroke();
</スクリプト>

効果は図の通りです。パラメータを変更することで、好きな形を描くことができます。

ここに画像の説明を挿入

JavaScript での HTML キャンバスとページ ストレージ テクノロジの使用に関するこの記事はこれで終わりです。より関連性の高い js HTML キャンバス コンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • HTML と CSS スタイルを組み合わせて JS 食品プロジェクトのホームページのサンプル コードを作成する
  • HTML+CSS+JavaScript でガールフレンド版のスクラッチ カードを作成します (一度見ればすぐに覚えられます)
  • 登録ページを実装するためのJS、CSS、HTML
  • SpringMVC @RequestBody 日付型 Json 変換メソッド
  • C# は HttpWebRequest を通じて JSON 本文を含む POST リクエストを送信します。
  • @RequestBody が json オブジェクトを受信して​​エラー 415 を報告する問題を解決する
  • @RequestBodyとJsonの関係についてお話しましょう
  • JSでHTML本文のスタイルを変更する

<<:  エラー 1862 (HY000): パスワードの有効期限が切れています。ログインするには、..... を使用してパスワードを変更する必要があります。

>>:  エラー 2002 (HY000): ソケット '/tmp/mysql.sock' 経由でローカル MySQL サーバーに接続できません

推薦する

MYSQL ログとバックアップおよび復元の問題の詳細な説明

この記事では、参考までにMYSQLログとバックアップとリストアについて紹介します。具体的な内容は以下...

独立した IP を介して Windows コンテナ イントラネットの Docker に直接アクセスする方法

Docker では、ポート マッピングを使用して、Docker コンテナーのサービスをホスト マシン...

ディスクを破壊せずに Linux で dd コマンドを使用する方法

故障したストレージ ドライブからデータを救出する場合でも、アーカイブをリモート ストレージにバックア...

Ubuntu 18.04 サーバーのパスワードを忘れたり改ざんされた場合にパスワードをリセットする方法

最近、サーバー上のアカウントが2つハッキングされ、パスワードが改ざんされました。幸い、まだ使えるアカ...

Reactはtodolistの追加、削除、変更、クエリを実装します

目次ToDoリストを例に挙げましょうディレクトリは次のとおりですアプリ入力.jsリスト.jsアイテム...

MySQL 8.0 のデフォルトのデータディレクトリを変更する (設定なしの簡単な操作)

使用シナリオ: Alibaba Cloud を使用しており、データディスクを別途購入しました (大容...

CSSは親要素の下の最初の子要素を選択します(:first-child)

序文最近、プロジェクトで :first-child を使用したのですが、すぐに思いつきました。これは...

使用場所によって混乱しやすいXHTMLタグ

<br />jb51.net では、常に記事のセマンティクスを重視してきましたが、HTM...

Vue2.0/3.0双方向データバインディングの実装原理の詳細説明

Vue2.0/3.0双方向データバインディングの実装原理双方向データバインディングとは、データの変更...

HTML(CSSスタイル仕様)を読む必要があります

CSS スタイル仕様1. クラスセレクター2. タグセレクター3. IDセレクター4. CSSスタイ...

Vue-router プログラムナビゲーションの 2 つの実装コード

ページをナビゲートする2つの方法宣言型ナビゲーション: リンクをクリックしてナビゲーションを実現する...

CUDA10.0 のインストールと Ubuntu での問題

Tensorflow バージョンと Cuda および CUDNN の対応: https://tens...

MySQL 学習: データベース テーブルの 5 つの主要な制約を初心者向けに詳しく説明します

目次1. 制約の概念と分類2. 5つの制約の追加と削除2.1 制約を追加する6つの方法2.2 制約を...

ウェブデザインの仕事に応募する方法

<br />みなさんこんにちは!ここで皆さんとチャットできて光栄です! (*^__^*)...

Windows 10 に MySQL 8.0.19 を zip 形式でインストールする詳細なチュートリアル

目次1.ダウンロード後、インストールしたいディレクトリに解凍します。 2. インストールディレクトリ...