« 2014年2月 | トップページ | 2014年4月 »

2014年3月

2014.03.13

イラレで黄金角を使ってひまわりの種を描く

Fn_2

さくっと手短に書いた。
始めの一個が中心に近いのはなぜだろう?

最近は美しく強力なデザインを目指している。日本のソフトウェア開発レベルは非常に低いが、なんとかそれを覆したく、もう一つ上の次元を求めている。

/*

20140312

Fibonacci number

黄金描くで選択したオブジェクトを配置するコード

選択したオブジェクトを任意の回数コピペ配置する

    */

var GR = (1+Math.sqrt (5))/2;

var GA = (2*Math.PI)/(1+GR);//黄金角

var r,a = 0;

var num = 1000;//配置するオブジェクトの数

var sel = activeDocument.selection;

var w = sel[0].width;

var h = sel[0].height;

for(i=0; i<num; i++){

    var objXY = [];

    var dpObj = sel[0].duplicate();//選択オブジェクトをコピペ

 

    r = Math.sqrt (i+1)*w;

    a += GA;

 

    objXY = fibonacci(r,a);

    dpObj.translate(objXY[0],objXY[1]);//中心値から移動

    }

function fibonacci(distance, n){//距離と基準角を入力すると黄金角の位置を返す。

    var xy = [distance*Math.cos (GA+n), distance*Math.sin (GA+n)];

    return xy;

    }





| | コメント (0) | トラックバック (0)

2014.03.11

jsは馬鹿に出来ない。

http://paperjs.org/features/

| | コメント (0) | トラックバック (0)

2014.03.01

イラストレーターの領域を黄金比で埋める

Grl


領域の高さを基準に正方形を黄金比で埋めるコード。

何に使うかって、レイアウトのガイド。

こんなのもコードにして、楽し過ぎかな。。。

/*

    golden ratio layout

    20140301

    領域内を黄金比の正方形で埋める

    */

var GR = 1.618033988749895;

var doc = app.activeDocument;

var abX,abXX,abY,abYY,abWidth,abHeight = 0;

var board = doc.artboards[doc.artboards.getActiveArtboardIndex()];

abX = board.artboardRect[0];

abXX = board.artboardRect[2];

abY = board.artboardRect[1];

abYY = board.artboardRect[3];

abWidth = abXX-abX;

abHeight = Math.abs (abYY-abY);

//アートボード縦サイズの正方形を生成

doc.pathItems.rectangle(abY,abX,abHeight,abHeight);

goldenRatio(abY,abX,abHeight,abHeight);

function goldenRatio(myY, myX, myHeight, myWidth){

    //黄金比の正方形を配置

    var newObjWidth = (GR * myWidth) - myWidth;

    var x = myX + myWidth;

    var y = myY - myHeight + newObjWidth;

    doc.pathItems.rectangle(y,x,newObjWidth,newObjWidth);

 

    var newObjWidth2 = (GR * newObjWidth) - newObjWidth;

    x = x + (newObjWidth - newObjWidth2);

    y = y + newObjWidth2;

    doc.pathItems.rectangle(y,x,newObjWidth2,newObjWidth2);

 

    var newObjWidth3 = (GR * newObjWidth2) - newObjWidth2;

    x = x - newObjWidth3;

    y = y;

    doc.pathItems.rectangle(y,x,newObjWidth3,newObjWidth3);

 

    var newObjWidth4 = (GR * newObjWidth3) - newObjWidth3;

    x = x;

    y = y - newObjWidth3;

    doc.pathItems.rectangle(y,x,newObjWidth4,newObjWidth4);

 

    var newObjWidth5 = (GR * newObjWidth4) - newObjWidth4;

    x = x + newObjWidth4;

    y = y - newObjWidth4 + newObjWidth5;

    doc.pathItems.rectangle(y,x,newObjWidth5,newObjWidth5);

    }




| | コメント (0) | トラックバック (0)

« 2014年2月 | トップページ | 2014年4月 »