ひさだんのスケッチブック(read.me)
https://gyazo.com/b179ea8d8812f9ce6944eb35b521c7b7
https://gyazo.com/3c4f16c9dd664cab9dde1d9d80f73439 ここに公開されているコードや画像は全て CC BY-SA 2.0 で公開します。
違うライセンスを適用する場合は、該当するページにその旨を記載しています。2025/2/5追記
多分バグはありますし、環境によっては動かないかもしれませんが、あしからず。
NFTはやってません。I have no NTF account.
だってubuntuもProcessingも基本無料なんだもん。だから自分も無料公開。
Processingで書いたものが増えてきたのでまとめておきます。
Processing4.1.2からclear()の使い方が厳格になったようで、メイン画面で使うとエラーになります。その場合、clear()をbackground(0)に変更して動かしてみてください。It seems that the usage of clear() has become stricter since Processing 4.1.2, and an error will occur if you use it on the main screen. In that case, please change clear() to background(0) and try running it. 2023/10/26追記
プログラムの作成に際しては、基本的に生成AIは使用していません。ただし、画像を入力としているプログラムでは、入力となる画像自体は生成AIを使用して作成しています。(自分では描けないので…。)また、作成したProcessingのプログラムをp5.jsに変換する場合に生成AIを使用する場合もあります。いずれにせよ、生成AIを使用した場合はその旨を明記します。 2025/2/5追記
(2025/7/31追記)
ページ中の動画は、Xで再エンコードがかからない&サイトの容量を食い潰さないことを考えて、ビットレートを2Mbpsに制限しています。なので、どうしても画面が荒くなってしまいます。自分のPCで動かすのが一番綺麗に見えるはず。
古いPCなどで負荷が高くて滑らかに動かない場合は、draw関数の最後にsaveFrame("data/#####.png");とかを入れて連番画像を生成し、ffmpegなどでビットレートの制限をかけずに動画にするのが良いです。サイズは大きくなりますが。
ffmpegは大抵以下のパラメータを使っています。ビットレートを制限しない場合はこれから-vb 2Mを削除すればOK。
ffmpeg -framerate 30 -i %05d.png -vcodec libx264 -pix_fmt yuv420p -vb 2M out.mp4
mp4だとscrapboxがサムネイル表示してくれないので、各ページの先頭にgifを付けてます。
→ ページ数が増えて重くなったので、静止画に切り替えました。(2022/1/9)
プログラムによってはprocessingとp5.jsの両方で書いているのもがありますが、自分の練習用です。
タイトルが「つぶやきProcessing」のものは「#つぶやきProcessing」タグをつけてtwitterに投稿したものです。
はぅ君さん、面白いタグ、ありがとうございます。
タグも含め、ソースを1ツイートに収めきります。
ただしページに貼っているソースはctrl+tで整形して見やすくしています。ここから無駄なスペースや改行を削除すると1ツイートに収まります。
かな〜り無理矢理な詰め方をしているので、ツイートからコピーする場合はprocessingで「自動フォーマット」推奨。
Processing3では変数の初期化をしなくても0を仮定してくれるのですが、Processing4では変数の初期化をせずに使おうとするとエラーになるので(←追記:ウソかも...)、ここのソースはそのままでは動かないかもしれません。その場合、エラーが出た変数の宣言のところで「=0」を追加して初期化してあげると動くはず...だといいなあ。(未検証)
あれ?もしかしたらなにか勘違いをしているかもしれない...エラーになるケースとならないケースを整理したほうが良いかも。
自分がやっている、ソースを1ツイートに収めるコツ(一般的なプログラミング作法の反対 )
動作に関係がないスペースは全部削除。字下げなんてもってのほか。
改行はしない。(twitterの改行は0.5文字にカウントされるそうな。)
変数名関数名は1文字。
変数は原則グローバル。そうすると宣言は1回だけで済む。
i,j,k,nとかは普通整数だよね、とかいう常識は全て無視。
intとfloatの両方を使う場合は全てfloatに統一してまとめて宣言。そうすると"int "の4文字が削減できる。
リテラル必須。
例えば127とかは99にすると1文字減る。同様に10は9にすると1文字減る。
ellipseよりもcircleを使う。名前も短いしパラメータも一つ減る。
似た数字なら意味が違っても変数を共用する。← これはひどい...というか、気持ち悪いのであまりやりたくない...。
background()、strokeWeight()、translate()あたりは名前が長い。配列宣言も長いのでなるべく避ける。
背景を黒にするならbackground(0)と書くよりもclear()と書く方が6文字短い。色指定は255書かずに-1と書けば1文字短くなる。(stroke(255)と書かずにstroke(-1)と書く、とか)
pushMatrix()、popMatrix()よりもpush()、pop()の方が短い。
書いていて、いいのかこれ?って思えてくるな...