見出し画像

なでしこさんで、拍子を正多角形と線で表示

今週はヴァイスシュヴァルツポータブルをあまりやらなかったし、書きたいことに関する情報を仕入れたけど……結局頭が悪くてクズだからか、書くための作業に時間を割り当てることはできなかったな……
まあ、雑プログラムで繋ぐ一択かな……頭が悪いから……

今回やったこと

なでしこで、指定した拍子を

の2通りの表現で表示する。
裏拍にも対応しているが、今のところ休符や連符には非対応。

プログラム

拍子を正多角形と線で表示 (プログラム貯蔵庫)

ポイント

画面の用意

Web簡易エディタでデフォルトで用意されている、横500×縦400ピクセルのキャンバスを用いる。

「DIV」のDOM部品作成。
それに{
  "display": "inline-grid",
  "grid-template-rows": "repeat(2, auto)",
  "grid-template-columns": "repeat(5, 5em)",
}をDOMスタイル一括設定。
それにDOM親部品設定。

拍の入力欄用のグリッドの枠を用意する。

拍リストは空配列。
裏リストは空配列。
番号で0から4まで繰り返す
  番号+2のエディタ作成。
  それの「type」に「number」をDOM属性設定。
  それの「min」に「0」をDOM属性設定。
  それに{
    "grid-column": 番号+1,
    "grid-row": 1,
  }をDOMスタイル一括設定。
  {関数}表示更新でそれの変更された時。
  拍リストにそれを配列追加。
  「裏」のチェックボックス作成。
  それに{
    "grid-column": 番号+1,
    "grid-row": 2,
  }をDOMスタイル一括設定。
  {関数}表示更新でそれの変更された時。
  裏リストにそれを配列追加。
ここまで。

拍の入力欄を5個並べる。
ポリリリリズムの「ジェイコブコリアーチャレンジ」のお題である 2:3:4:5:6 をデフォルトにした。

入力欄の部品を、後で参照できるように配列に格納する。
さらに、入力値が変化した時、表示を更新するようにする。

表示の更新

●表示更新とは
  全描画クリア。
  黒色に線色設定。
  「#00000000」に塗色設定。
  番号で0から4まで繰り返す

キャンバスの描画内容を初期化し、描画に用いる色を設定する。
線は黒、中は透明で描画する。
そして、それぞれの拍の描画を行う。

    拍リスト@番号のテキスト取得して整数変換。
    定数の拍はそれ。
    定数の裏は(裏リスト@番号)$選択状態。
    もし、NOT(拍をNAN判定)かつ(拍が1以上)ならば

描画を行う拍に関する入力内容を取得する。
それが有効であれば描画を行い、無効であれば描画を行わない。

      定数の頂点リストは空配列。
      キャンバス状態保存。
      3に線太さ設定。
      [番号×100+50, 110]に描画起点設定。
      頂点で0から(拍-1)まで繰り返す
        変数の角度は頂点を拍で割る。
        もし、裏ならば、角度は角度に0.5÷拍を足す。
        もし、角度が1以上ならば、角度は角度から1を引く。
        [-45, (1-角度)×280]から[45, (1-角度)×280]へ線描画。
        頂点リストに[45×SIN(角度×2×PI), -45×COS(角度×2×PI)]を配列追加。
      ここまで。

太い線での描画に設定し、キャンバス下部の線を描画するとともに、上部の多角形用の座標を用意する。

#D0D0D0」に線色設定。
      [-45, 0]から[45, 0]へ線描画。
      もし、裏ならば、[-45, 280]から[45, 280]へ線描画。
      キャンバス状態復元。

線を表示する範囲がわかりやすいよう、範囲の端に薄い線を描画する。

      キャンバス状態保存。
      1に線太さ設定。
      [番号×100+50, 50]に描画起点設定。
      頂点リストを多角形描画。
      キャンバス状態復元。
    ここまで。
  ここまで。
ここまで。

表示更新。

用意した座標を用いて、キャンバス上部の多角形を描画する。

最後に、この関数「表示更新」を起動時に実行し、初期値を用いた描画が行われるようにする。

おわりに

なでしこで、指定の拍子を正多角形と線で表示できた。

ポリリリリズムの図形だけではわかりにくい押し方を音ゲー風にビジュアライズし、ポリリリリズムの攻略に……繋がるかな……?


いいなと思ったら応援しよう!

コメント

コメントするには、 ログイン または 会員登録 をお願いします。
なでしこさんで、拍子を正多角形と線で表示|みけCAT
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1