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

最近ウェブを勉強していて、サイトでパーティクルシステムやキャンバスで開発されたゲームなどのさまざまな美しい効果を既に見ている場合は、興味をそそられましたが、新しいことを学ぶのは非常に怖いです。 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%しか含まれていません。その他の時間は、エラーのあるコードを書き、外出先でデザインします。 私の意見では、最も簡単な例は、簡単な例を使用して自分で実装することです。

Source: https://habr.com/ru/post/J435782/


All Articles