JavaScriptはクリックするとランダムなグラフィックを生成します

JavaScriptはクリックするとランダムなグラフィックを生成します

この記事では、クリックするとランダムグラフィックの生成を実現するJavaScriptの具体的なコードを紹介します。具体的な内容は次のとおりです。

クリックするとランダムなグラフィックが生成されます

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

JavaScriptで実装

主にキャンバスとランダム関数を使用してさまざまなグラフィックを完成させます

最初のステップ

グラフィックが表示される四角形と 2 つのボタンを HTML と CSS で作成します。最初のボタンはグラフィックを生成するために使用され、2 番目のボタンは生成されたすべてのグラフィックをクリアするために使用されます。

<スタイル>
  *{
   マージン: 0;
   パディング: 0;
  }
  #キャンバス{
   境界線: 実線 1px 赤;
   表示: ブロック;
   マージン: 0 自動;
  }
  #父親{
   幅: 200ピクセル;
   マージン:0 自動;
   
  }
  #ボタン{
   右マージン: 40px;
   カーソル: ポインタ;
  }
  #cle{
   カーソル: ポインタ;
  }
</スタイル>
<本文>
 <キャンバスid="キャンバス" 幅="600" 高さ="600"></キャンバス>
 <div id="父">
  <input type="button" id="btn" value="クリックして生成">
  <input type="button" id="cle" value="クリックしてクリア">
 </div>
</本文>

ステップ2

JavaScript で、ランダムな色を設定する関数、クリック時にランダムにグラフィックを生成する関数、クリック時に画面をクリアする関数を作成します。

var キャンバス = document.getElementById("キャンバス");
 var コンテキスト = canvas.getContext("2d");
 var btn = document.getElementById("btn");
 var cle = document.getElementById("cle");

図形のランダムな色を設定する

関数 color(){
  var r = Math.floor(Math.random()*255);
  var g = Math.floor(Math.random()*255);
  var b = Math.floor(Math.random()*255);
  var a = Math.random();
  var bg="rgba("+r+","+g+","+b+","+a+")";
  bg を返します。
 }

ボタンをクリックしたときにランダムにグラフィックを生成する関数を設定します。最初のタイプは塗りつぶされた四角形と白抜きの四角形、2 番目のタイプは塗りつぶされた円と白抜きの円、3 番目のタイプは直線です。それらの位置とサイズをランダムに生成する関数を記述し、context.beginPath()-context closePath() などのグラフィックを描画するキャンバス コードを追加します。

btn.onclick=関数(){
  var ランダム = Math.floor(Math.random()*3+1);
  if(ランダム==1){
   var rectr=Math.floor(Math.random()*2);
   var rectx = Math.floor(Math.random()*600);
   var recty=Math.floor(Math.random()*600);
   var rectwidth=Math.floor(Math.random()*200+200);
   var rectheight=Math.floor(Math.random()*200+200);
   if(rectr== 0){
    コンテキスト.beginPath();
    context.strokeStyle=色();
    context.strokeRect(rectx,recty,rectwidth,rectheight)
    コンテキスト.closePath();
   }
   それ以外 {
    コンテキスト.beginPath();
    context.fillStyle=色();
    context.fillRect(rectx,recty,rectwidth,rectheight);
    コンテキスト.closePath();
   }
  }
  そうでない場合(ランダム == 2){
   var arcr = Math.floor(Math.random()*2);
   var arcx=Math.floor(Math.random()*600);
   var arcy=Math.floor(Math.random()*600);
   var arcr = Math.floor(Math.random()*300);
   (arcr==0)の場合{
    コンテキスト.beginPath();
    context.strokeStyle=色();
    context.arc(arcx,arcy,arcr,0,2*Math.PI,false);
    コンテキスト.stroke();
    コンテキスト.closePath();
   }
  
   それ以外{
    コンテキスト.beginPath();
    context.fillStyle=色();
    context.arc(arcx,arcy,arcr,0,2*Math.PI,false);
    コンテキストを埋め込む();
    コンテキスト.closePath();
   }
  }
  そうでない場合(ランダム==3){
   var movex = Math.floor(Math.random()*600);
   var movey=Math.floor(Math.random()*600);
   var linex = Math.floor(Math.random()*600);
   var liney = Math.floor(Math.random()*600);
   var linew = Math.floor(Math.random()*20);
   コンテキスト.beginPath();
   context.strokeStyle=色();
   コンテキストをmoveTo(movex,movey);
   コンテキストのlineTo(linex,liney);
   context.lineWidth=linew;
   コンテキスト.stroke();
   コンテキスト.closePath();
  }
}

ステップ3

最後に、画面をクリアするためのボタン機能を作成します。作成した画面サイズに応じて、キャンバスにcontext.clearRect(0,0,600,600)を追加して画面をクリアします。

cle.onclick=関数(){
  コンテキスト.beginPath();
  コンテキストをクリアする矩形(0,0,600,600);
  コンテキスト.closePath();
 }

クリックするとランダムなグラフィック効果が生成されます。

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

以下もご興味があるかもしれません:
  • JavaScript 複数グラフィック実装コード例

<<:  Nginx キャッシュ ファイルと動的ファイルの自動バランス設定スクリプト

>>:  Linux での MySQL 5.7.17 の最新安定バージョンのインストール チュートリアル

推薦する

VueはPCカメラを呼び出して写真機能を実現します

この記事の例では、VueがPCカメラを呼び出して写真機能を実現する具体的なコードを参考までに共有して...

Linux スケジュールタスクの関連操作の概要

皆様の参考と操作を容易にするために、様々な主要ウェブサイトを検索し、関連するスケジュールされたタスク...

Vueのカスタムイベントコンテンツ配信の詳細な説明

1. これは理解するのが少し複雑なので、原理を注意深く読んで自分で入力していただければ幸いです。 &...

MySQL Shellの紹介とインストール

目次01 レプリ​​カセットアーキテクチャ02 MySQL Shellの紹介とインストール03 My...

テーブルを使用する場合と CSS を使用する場合 (経験の共有)

TW のメインテキスト ページは、以前は小さなモニターと低解像度のユーザーを考慮して幅が 850 ピ...

MySQL で explain ステートメントを使用する基本的なチュートリアル

目次1. 概要1. 説明文テスト2. 結果の各列の説明2. ID列の説明1. 環境整備2. expl...

Linux でバックグラウンドで実行中のプログラムを表示して終了する方法

1. .shファイルを実行する./sh ファイルを使用して直接実行することもできますが、現在のターミ...

SASSで変数のデフォルト値を使用する方法

SASS で定義された変数では、後で設定された値によって古い値が上書きされます。 $色: 赤; $色...

MLSQL スタックでストリームのデバッグを簡単にする方法

序文クラスメートが MLSQL Stack のストリーミング サポートを調査しています。そこで、フロ...

Mysql のいくつかの複雑な SQL ステートメント (重複行のクエリと削除)

1. 重複行を見つける blog_user_relation a から * を選択 WHERE (...

WeChatアプレットが検索ボックス機能を実装

この記事の例では、WeChatアプレットの検索ボックス機能を実装するための具体的なコードを参考までに...

nginx の default_server 定義とマッチングルールの詳細な説明

nginx の default_server ディレクティブは、server_name と一致しない...

レイアウトサイズを変更するために左右にドラッグする純粋なCSS

ブラウザの非overflow:auto要素resize伸縮機能を利用して、JavaScript を使...

Vue のスロットスコープの詳細な理解(初心者向け)

Baidu には slot-scope に関する記事が既にたくさんありますが、以前よく学習しておら...

Ubuntu 18.04 に mysql5.7.23 をインストールするチュートリアル

この記事では、Ubuntu18.04にmysql5.7.23をインストールする具体的な方法を参考まで...