スプライトはmouseIsOverとmouseIsPressedプロパティを持っていて、mouseActiveプロパティを有効化することで、動作するようになります。canvas」の訳文です。Notation)形式もまた、データの保持によく使用されるシステムです。HTMLやXML形式のように、要素はそれに関連付けられたラベルを持ちます。knagaiデータセットは行と列として保持される場合が多くあるので、p5.jsでもその扱いを容易にするp5.Tableオブジェクトが提供されています。knagaiデータの視覚化は、コードとグラフィックスが交わる最も活発な分野で、p5.jsで最も人気のある用途の1つです。knagai配列を使用すると、多数ある要素が扱いやすくなります。次のリンクをクリックすると、実際の動作が確認できます。knagai以下の2つは、これまで見てきた変数、繰り返し、条件、関数、オブジェクト、配列というプログラミングの主要概念を全部取り入れたサンプルです。knagaiforループを使用すると、コードの簡潔性を保ちながら、大きな配列の扱いが簡単になります。それは、配列の各要素の位置に1つずつ移動するループを記述する、というアイデアによります。knagai配列に含まれる各項目は要素と呼ばれ、要素はそれぞれ、配列内のその要素の位置を示すインデックス値を持ちます。キャンバスの座標と同じように、配列のインデックス値も0から数え始めます。knagai配列は、共通の名前を共有する、変数のリストです。新しい名前を逐一作成せずに多くの変数が扱えるので非常に便利です。これにより、コードは短く読みやすくなり、更新も容易になります。knagaiソフトウェアオブジェクトは、メソッド(関数)とプロパティ(変数)を1つの単位にまとめたものです。次のサンプルのRobotクラスでは、作成するロボットオブジェクトのすべてを定義しています。knagaiオブジェクト指向プログラミング(OOP)はプログラムについて考える、また別の方法です。オブジェクトはまた、変数をそれと関係する関数とグループ化する方法でもあります。knagai次のサンプルでは、関数を使って、4つの異なる形状をしたロボットを同じプログラム内で作成しています。knagai関数は、計算した結果の値をメインのプログラムに返すことができます。これまでに使用してきたrandom()やsin()はこのタイプの関数です。このタイプの関数を使うときには、返される値(戻り値)を変数に割り当てます。knagai本稿では、フクロウの描画を通して、関数の作成に必要な手順を見ていきます。フクロウを描画するコードの例です。knagaiコンピュータはプログラムのコードを1行ずつ実行します。関数を実行するときには、関数が定義されている場所にジャンプしてそこに書かれているコードを実行し、終わったらジャンプした元の場所に戻ってそこから実行をつづけます。knagaip5.jsプログラムにとって関数は欠かせない基本要素で、これまで見てきたどのプログラムでも使用しています。createCanvas()やline()、fill()などは頻繁に使用しています。knagairandom()とsin()関数を取り入れて、ロボットを震えさせるサンプルです。knagai三角関数のサインとコサインは連続する滑らかなモーションに利用できます。sinθ)にあることを言います。knagaiすべてのp5.jsプログラムは、スタートしてから経過した時間量をミリ秒単位で数えます(1ミリ秒は1/1000秒)。このカウンタを使用すると、ある特定のタイミングでアニメーションを引き起こすことができます。knagai滑らかな線形モーションはどのコンピュータでも同じように描画されますが、現実世界の事物はそれぞれの動きをしています。地面にひらひらと落ちる葉っぱや荒れ地をはう蟻は、どれ1つとして同じ動きをしていないように見えます。knagaiシェイプをある位置から別に位置に、アニメーションして移動させたい場合、そのスタート位置と終了位置を設定し、その間の位置を毎フレーム計算して、描画します。左から右に少しずつ、移動するモーションのコードは次のように記述できます。knagaip5.jsでは、滑らかなモーションを生み出すために、draw()関数内のコードを毎秒60フレームで実行しようとします。フレームとはdraw()関数を通り抜ける一瞬で、フレームレートは毎秒何フレーム描画されるかを表します。knagaiパラパラ漫画と同様に、画面のアニメーションは、あるイメージを描画し、次いでそれと少しだけ違ったイメージを描画することの連続で作成されます。滑らかなモーション(動き)の錯覚は残像によって生み出されます。knagai下図の3体のロボットは、これまでのように線や矩形で作成したものではなく、ベクター描画プログラムで作成されたSVGイメージを読み込んだものです。knagaip5.jsでは、TrueType(.ttf)フォントとOpenType(.otf)フォントを使ったテキストが描画できます。knagaiシステムフォント以外に、フォントを提供者からダウンロードして使用する選択肢もあります。これはWebフォントと呼ばれ、GoogleFontsが有名です。knagaip5.jsではデフォルト以外の多くの書体でテキストが描画できます。書体を表すフォントは、コンピュータにインストールされているフォント(システムフォント)ならどれでも使用できます。knagaiここまで、画像を読み込むときには、loadImage()関数をpreload()関数内に置いて、読み込みが終わってからsetup()関数に進んでいました。knagaip5.jsでは、JPEG、GIF、PNG形式と、SVG形式の画像を読み込んで表示することができます。JPEG、GIF、PNG形式の画像はラスター画像と呼ばれます。knagaiイメージを画面に描画するには、次の手順を取ります。イメージを用意し適切な場所に配置する。イメージを保持する変数を作成する。loadImage()関数でイメージを変数に読み込む。knagaip5.jsでは、単純な線やシェイプの描画に留まらず、さまざまなことが行えます。以降では写真や図、文字のさまざまな書体表現に活かせる、p5.jsのイメージやテキストの作成方法を見ていきます。JavaScript」で作成したロボットに、translate()とrotate()、scale()関数を組み込みます。次のリンクをクリックすると、実際の動作が確認できます。knagai変換の効果が以降の関数に影響しないように分離させることができます。push()関数は現在の座標システムのコピーを保存し、pop()関数は保存した座標システムを復元します。knagaiscale()関数はキャンバスの座標を引きのばしたり縮めたりします。スケール(縮尺比)の変化に合わせて、座標が伸縮するので、キャンバスの描画物すべてのサイズが大きくなったり小さくなったりします。knagaitranslate()とrotate()とline()の組み合わせを3回行って、3つの線が互いにつながった連結アームのようにアニメーションするサンプルです。次のリンクをクリックすると、実際の動作が確認できます。knagaitranslate()とrotate()関数を組み合わせて使用すると、描画物に対する制御力が高まります。そのとき重要なのが、これらを呼び出す順番です。knagairotate()関数は座標システムを回転させます。0)に対しての、つまり原点を中心とした回転を作成します。knagai座標変換は実際には、相当な数学的難問で、高校数学程度の知識(行列や三角関数など)が必要になりますが、p5.jsでは専用の関数が用意されているので、それらを適切に呼び出すだけで実現できます。knagaiキャンバス上での描画物の位置取りと移動にはまた、キャンバスの座標システムを変更するというテクニックがあります。ロボット四変化」のロボットが、マウスの移動とクリックに応答するバージョンです。次のリンクをクリックすると、実際の動作が確認できます。knagaiプログラミング用語として「マッピング」という単語が使われますが、これは日本語で言うと、「あれとこれを対応付ける」というような意味です。knagaip5.jsは、キーボードのいずれかのキーが押し下げられているかどうかを追跡します。knagaiマウスカーソルの位置(mouseX、mouseY)を使って、描画内容を変更する例です。キャンバスにマウスカーソルを重ねると、縦線がカーソルに近づいてきます。knagaip5.jsには、mouseX、mouseY、pmouseX、pmouseYに加え、mouseIsPressedというシステム変数があります。knagaiWebアニメーションでは、ある位置からある位置に移動するとき、目的地にすぐにではなく少し間をとってから到達したり、だんだん速くなったり(加速)、だんだん遅くなったり(減速)するものがよく見られます。knagaidraw()関数は1秒間に60回呼び出されつづけるので、キャンバスをその頻度で再描画しつづけるキャンバスアニメーションの表現に適しています。円を描く」で見たように、draw()関数は、setup()関数の後、何度も繰り返し呼び出される、p5.jsの特別な関数です。Robotの描画」で見たロボットを描画するコードに変数を追加し、代入する数値を変えることで、ロボットの見た目を変化させるサンプルです。変更する変数は次の3つです。変数」で見たように、特別なシステム変数です。widthには描画するキャンバスの幅が、heightには高さが自動的に割り当てられます。knagai変数は、後からプログラムで利用できるようにするために、メモリに値を保持します。変数は1つのプログラム内で何度でも使用でき、その値はプログラムの実行中に簡単に変更できます。knagai線や円、矩形を組み合わせてロボットを描画するサンプルです。knagaiいささか手数がかかりますが、vertex()関数とbeginShape()、endShape()関数を組み合わせることで、カスタムシェイプが描画できます。シェイプの線と塗りの色は、stroke()関数とfill()関数で設定できます。knagai描画するシェイプ(形状)の属性は専用の関数で設定できます。デフォルトでは、ストローク(線や円、四角形などの枠線)の幅は1ピクセルですが、これはstrokeWeight()関数で変更できます。楕円(円)、円弧を描く。y)座標は楕円の中心を設定します。knagaip5.jsには、基本的なシェイプ(形状)を描く関数が定義されているので、三角形や四角形などを簡単に描画することができます。線を描いてつなぎ合わせる方法で、複雑な形状を作ることもできます。knagaiキャンバスに点を描画するには、point()関数を使用します。次のコードはキャンバスの真ん中に1ピクセルの点を描画します。knagaip5.jsが得意とするビジュアル表現には、HTML5の<canvas>要素が使用できます。<canvas>要素は前出のcreateCanvas()関数で作成します。knagai次のJavaScriptコードをsketch.jsに記述します。knagaip5.jsを使用するには、p5.jsライブラリをWebブラウザに読み込む必要があります。そのためには、次の<script>タグを、<head>タグ内に挿入します。overviewには、次のように書かれています。コメントをするWAAPIに関する注意WAAPIを利用するにはブラウザに特別な設定が必要です。ブラウザの実験的な機能を有効化する方法に書いているので、必ずお読みください。楕円(円)、円弧を描く。APIやTensorFlow.jsについて調べたことを書いています。freebiescafe.com。