【sketch】ストライプ模様
haraです、こんにちは。
今回はsketchネタです。
以前参考にさせてもらったnutsuさんの作品
こちらのFMatrix2Dを使っている処理のところがよくわからないので、にゃあプロジェクトさんのMatrixのページやら、AdobeのMatrixのページやら、FrocessingのDocsのFMatrix2Dのページやらとにらめっこしながら読んでみました。
こちらのコード中で、ラインを描くcc1x〜pp2yはvx,vyのベクトルにより得られたMatrixの移動値tx,tyに傾斜と変形の値c,dを足しています。
var cc1x:Number = -obj.w*obj.vmt.c + obj.vmt.tx; var cc1y:Number = -obj.w*obj.vmt.d + obj.vmt.ty; var pp1x:Number = (obj.c1x+cc1x)/2; var pp1y:Number = (obj.c1y+cc1y)/2; var cc2x:Number = obj.w*obj.vmt.c + obj.vmt.tx; var cc2y:Number = obj.w*obj.vmt.d + obj.vmt.ty; var pp2x:Number = (obj.c2x+cc2x)/2; var pp2y:Number = (obj.c2y+cc2y)/2;
ここがなぜ足しているのかよくわからなかったもので。
で、なんとなくこうでないか、と思ったのが以下のような感じ。
このポイントにおいて必要なのは、矩形の2辺の角度と長さだけ。なので、xにおいてはMatrixの回転によってどれだけ傾斜がずれたか、yにおいては回転およびスケールによってどれだけ伸び縮みしたかの情報があれば成立するのでcプロパティとdプロパティをそれぞれx,yに加味する、ということ。
試しにc, dの代わりにa, bを入れても大体同じような結果が得られる。ただし、辺の傾きが逆になっている。
図にするとこんな感じ。
この手法を使うと色々なパターンで曲線を操ることができそうです。
傾きを一定方向に固定すれば、このようにストライプの模様が描画されることになります。
また、小さい確率でスケールと回転の処理を入れるようにすると、冒頭にあげたようなストライプが少し崩れる、変わりストライプの模様になります。
Matrixを使いこなしたい秋。
ではでは〜