エレメンタリーキャンバス

最近ウェブを勉強していて、サイトでパーティクルシステムやキャンバスで開発されたゲームなどのさまざまな美しい効果を既に見ている場合は、興味をそそられましたが、新しいことを学ぶのは非常に怖いです。 jsコードの50行のように、canvas'eで何か面白いことができます。



画像



私はすぐに言って、私はキャンバスで作業するロジックを説明したいと思います。 コードは非常にシンプルです。これにより、キャンバスなどのツールを学ぶことをお勧めします。 これは、初心者のJSプログラマーにとっても非常に良い習慣です。



コードに移りましょう。 キャンバス上に異なる色の正方形の単純な世代を書きましょう。 コード全体を一度に確認できるので、説明します。





何をする必要がありますか?



  1. キャンバスとその2Dコンテキストを取得します(これをまだ行ったことがない場合でも心配しないでください。これにより2行のコードが作成されます)
  2. キャンバスを少し適応させましょう
  3. 必要な変数とプロパティを設定します
  4. キャンバスに要素を描く
  5. サイズを変更するとき、キャンバスのサイズを変更します


キャンバスでの作業は、3つの段階に分けることができます。



  1. 必要なプロパティの設定(ペンの太さ、塗りつぶしの色、線の色、その他のプロパティ)
  2. 要素を描く
  3. 動的な何かをするなら。 たとえば、ゲーム、アニメーション、パーティクルおよびその他の要素のシステムは、サイクルを作成し、オブジェクトのレンダリング(レンダリング)をドロップします


さて、コードに戻ります。



1.先ほど言ったように、2行のコードで、キャンバスを操作できます



画像



Idによる要素の取得は標準のブラウザーAPIですが、getContextはキャンバス自体のメソッドです。 3Dコンテキストを取得できますが、現時点では必要ありません。



2. 2番目のポイント、3番目と5番目の私は団結します。 変数が宣言されている+コードはここで同じです。 別個の関数を作成することもできます コードの複製はすでに進行中です。これは悪いことです。



画像



さらに幅と高さの変数が必要になります、また、キャンバスコンテキストを受け取った後にReSize関数を呼び出すことを忘れないでください。



別のオプションオブジェクトが必要になります。 その中にすべての設定を保存します。



opacity-canvas'eで要素が上書きされる速度

count-関数の1回の実行で作成するキューブの数

fps-理由を説明する必要はないと思います...真実は奇妙です...

色-ここにカラーパレットを表すマスクがあります

色相は、0〜360の範囲の色調です。画像はより鮮明になります。



画像



divisionSpeedは、色の変化率を調整できる変数です



画像



4.残っているのは、ループ、レンダリング用の関数を作成し、それをすべて呼び出すことだけです。



画像



Init関数を作成します。ループを初期化する必要があります。 WindowにはrequestAniimationFrame()メソッドがあり、必要な関数の呼び出しをループできます。 また、Init内で、キューブをレンダリングするためのコードが保存されているStep()関数を呼び出します。



ループでレンダリングして、一度に100個の要素を描画します。 サイクル内で最初に行うことは、0〜360の範囲の色調を選択できる条件を設定することです。これにより、キューブの色が変わります。 2つの後続の行を1つに結合して、Figureの塗りつぶし色を直接設定できます。 ctx.fillStyleでは塗りつぶしの色を設定でき、ctx.fillRect(ポイントx、ポイントy、幅、高さ)ではシェイプを描画できます。 高さをランダムに設定しますが、サイズの範囲内で設定します。



ループの2行後、画面をクリアします。 fillstyleで塗りつぶしの色を設定できることは既に知っています。optionsオブジェクトの不透明度に等しい不透明度で白色を設定します。 また、キャンバスのサイズに等しい寸法で0:0ポイントからクレンジング図の描画を開始します。



Init関数は、プログラム内のどこでも呼び出すことができます。



キャンバスで美しいことができるとまだ疑っている場合は、次の例をご覧ください。





キャンバスに興味がある場合は、この技術の研究を続けましょう。 良い学習記事についてアドバイスすることはできません キャンバスについて読むのは私にとって非常に退屈であり、私自身はブックマークに良いものを保存しませんでした。 また、youtubeにはキャンバス上に優れたビデオがほとんどなく、視聴できるビデオには必要な情報の10%と水が30%しか含まれていません。その他の時間は、エラーのあるコードを書き、外出先でデザインします。 私の意見では、最も簡単な例は、簡単な例を使用して自分で実装することです。



All Articles