マガジンのカバー画像

アルちゃんのprocessing部

27
運営しているクリエイター

記事一覧

重心座標の恐怖

重心座標と逆変換三角形の内側の座標v[x,y]は[0-1]のパラメータ[t1,t2,t3]を3つ用いることで表せます。すなわち入力[t1,t2,t3]であって、出力v[x,y]です。正確に言うと三角形を構成する座標値V1,V2,V3も必要ですが、これは既知、すでにあきらかであるとします。つまり画面上に最初からあれということです。

重心座標は入力v[x,y]として、出力[t1,t2,t3]とするこ

もっとみる

Polylineあれやこれや

Polyline : List<Vector2D>の末尾とindex[0]が繋がっていないもの
Polygon : 繋がってるもの

GetLength
ポリラインの長さを求める

float GetLength(ArrayList<PVector> polyline){ float sum = 0; for(int i = 0; i<polyline.size()-1; i++) { P

もっとみる

ノードン的なものを作るドン!その001



必要なこと

・(InputOutputValue) : ノード同士が単一の、あるいは複数の、及び組み合わされたパラメータをやり取りする。
・(InputPort) : ノードが受け取ったパラメータはノードによって解釈され、変更され、修正される。
・(Node) : ノードはパラメータを保持したり反映したり、あるいはGUI(Graphigs User Interface)や図形などの表現により

もっとみる

自己交差を回避するランダムウォーク

※非整数ブラウン運動とは関係ありません。

線分の交差判定
この辺の詳細は最下部に歳の割には頭の賢いYoutuberへの動画リンクを張っとくため、ご覧召されよ。

注意すること
線分の端点の扱いをおろそかにすると、ずっとヒット判定だしたり、線分の繋ぎ目をすり抜けたりすることがある。

//線分は交差するかpublic boolean IsIntersect(PVector sv0, PVector

もっとみる

画像とベクトル

パターン認識だの画像認識だの画像処理だのの下準備です。
コードは全部processingです。

白黒2値画像と画像を比較することを考えます。
画像の比較、とは。ある画像が他の画像と似てるだとか似ていないだとかをコンピーターに判別してもらうための一つのやり方を指します。
簡単のため、画像は白黒2値画像とし、そのサイズは5×5ピクセルと考えます。

比較の手法の一つとして、与えられた白黒2値画像を、

もっとみる

グリッドであれこれする

このページは途中です。

processingを用います。

グリッドあれやこれやグリッドとは以下のようなものです。

こんなようなものでもただ単純に線として描画したい場合もあればマス目として(特に色を塗ったりして)描画したい場合もあり、また交点の座標を得たい場合もあります。そこからさらに様々な加工変形を試みたい場合もあります。

単純にグリッドを構成する線の描画のみする場合(縦断横断型)

vo

もっとみる

魔改造イージング関数

こちらのチートシートを参考にします。

イージングはアニメーションで使用されるのが主だと思われますが、世の中には関数の形に劣情を催す変態がいるのでその人ら用です。

まず関数の形を簡単に表示できるようにしておきます。

import java.util.List;List<Float> glist = new ArrayList<Float>();interface IEaseFunc{ f

もっとみる

ランバート反射(最小限)

参考図書
CによるCGレイトレーシング (Information & computing) 単行本 – 1992/8/1村岡一信 (著), 千葉則茂 (著)

3次元の球に光を当てた時の光の反射について考えます。

しかし真面目に3次元データを表示することを考える場合、全部自分で実装しようとするとあれやこれやとめんどくさく、ありものを使うとそもそも反射部分を実装する必要すらなくなってしまいます。

もっとみる

魔改造メタボール

この記事は想像で書いてます。

この記事はprocessingで書いてます。

良く知られたメタボールは陰関数曲面がなんちゃらかんちゃら、f(x,y)=0なりf(x,y,z)=0なる点の集合とかなんとか言われておることでしょう。
学校で習うy=f(x)なるやつは、入力1個で出力1個。横軸に入力をとって縦軸に出力をとれば簡単にグラフにできるしプログラムに落とし込むのも容易です。
z=f(x,y)なら

もっとみる

描画関数抽象化ver1.1

前回

関連項目

前回のLinerStructure関数を改造することを考える。

//前回のLinerStructure関数static void LinerStructure( PGraphics pg, List<PVector> source, SamplingMethodS sampling, UnittingMethodSi unitting, DrawMethod drawe

もっとみる

描画関数抽象化ver1.0

processing4を用います。

processingの基本的な描画関数。

line(x1, y1, x2, y2);circle(x, y, extent);

それをループを用いて使用する場合の例。

static void DrawPoints(PGraphics pg, Collection<PVector> points, float radius) { for(PVecto

もっとみる

トランスフォーマー

processing4.0をもちいます。

適当に作った概念や名称が当然のように登場することがあります。
他所で使うとポカンとされます。

基本的な考え方。

変換対象(図形、パラメータ)と、変換変形操作を分離する。その後レゴみたいに組み立てる。

変換変形操作とは、平行移動、拡大縮小、回転などといったアフィン変換。補間、クリッピング、ブーリアン演算、あるいは3次元ベクトルを2次元平面に焼き付ける

もっとみる

うずまき

prosessingが4.0になりました。
なのでvarやラムダ式を使ったり使わなかったりします。

ベクトル操作は以下の記事を参照

渦の基本:
何らかの方法で円を描きながら円の半径を縮めたり伸ばしたりすると渦になる。

渦の基本形、パラメトリック円型。List<PVector> MakeUzumaki_circle( PVector cv, float radius, float start_

もっとみる

Polylineテクスチャ

直線や曲線に座標群を張り付けて、直線曲線に沿った自由自在な装飾や模様、あるいはタッチを目指す。

スプラインはこちらへん。

ベクトル系のメソッドはこちらへん。

Drawなんちゃら系のメソッドの基本パターン。他に可変長引数のものを使ったりしますが、ここでは省略。なのでDrawLinerClose(v0,v1,v2)みたいな使い方はコピペするとエラーでます。

void DrawLiner(Arr

もっとみる