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 の最新安定バージョンのインストール チュートリアル

推薦する

MySQLステートメントの記述と実行順序を理解するだけです

MySQL ステートメントの書き込み順序と実行順序には大きな違いがあります。書き順、mysql の一...

JSONObject の使用方法の詳細な説明

JSONObject は単なるデータ構造であり、JSON 形式のデータ構造 ( key-value構...

カルーセル効果を実現するネイティブJavaScript

この記事では、カルーセルの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...

Docker に MySQL と Redis をインストールする方法

この記事はCentOS 7.3システム環境をベースに、MySQLとRedisのインストールと使用につ...

CentOS 7.2 は uniapp プロジェクトを展開するための nginx Web サーバーを構築します

Pantherは新人としてスタートし、今もまだ新人ですが、人々から学び、学んだことを時々皆さんと共有...

Vue の親子コンポーネントの値転送と一方向データフローの問題の詳細な説明

目次序文1. 親コンポーネントが子コンポーネントに値を渡す2. サブコンポーネントのprops型制約...

MySQL 8.0.23 のインストールと設定方法のグラフィックチュートリアル (Win10 の場合)

この記事では、MySQL 8.0.23のインストールと設定方法を参考までに紹介します。具体的な内容は...

JavaScript カラービューア

この記事では、カラービューアを実装するためのJavaScriptの具体的なコードを参考までに紹介しま...

JavaScriptはスライダーを介してWebページの色を変更することを実装します

みなさんこんにちは、今日はウェブフロントエンドのHTMLを見ていたら、inputタグのtype属性が...

初心者のためのMySQL外部キーの設定方法

目次外部キーの役割mysql 外部キー設定方法要約する外部キーの役割データの一貫性、整合性を維持し、...

Vue プロジェクトはファイルダウンロードの進行状況バー機能を実装します

日常業務でファイルをダウンロードする一般的な方法は 2 つあります。 1 つ目は、サーバーのファイル...

MySQL InnoDB ストレージエンジンのメモリ管理の詳細な説明

目次ストレージエンジンのメモリ管理データ ページを LRU キューの先頭に置かないのはなぜですか?ダ...

MySQL PXC クラスターの構築方法

目次1. PXCの紹介1.1 PXC の紹介1.2 PXC の特徴と利点1.3 PXCの限界と欠点1...

MySQL の単一テーブル クエリ操作例の詳細な説明 [構文、制約、グループ化、集計、フィルタリング、並べ替えなど]

この記事では、MySQL の単一テーブル クエリ操作について説明します。ご参考までに、詳細は以下の通...

Reactはルーティングを使用してログインインターフェースにリダイレクトします

前回の記事では、webpack と react 環境を設定した後、ログイン インターフェースとその後...