テキスト(文字)を円に沿って配置する

■プログラム説明(ソースコード説明)
 円の計算式に従って文字の座標を決めます。円の計算式は以下のものを使用しています。

X座標 = Math.sin(ラジアン) * 半径
Y座標 = Math.cos(ラジアン) * 半径

 1文字分の角度は360度を文字数で割ります。角度からラジアンに変換するには「角度×円周率÷180」になります。座標を移動させるにはtransltate()を使います。

■ソースコード
str = "文字列が円に沿って自動的に配置されます";
r = 100; // 半径
docObj = activeDocument;
for (i=0; i<str.length; i++)
{
n = (i * (360 / str.length)) * Math.PI / 180;
x = Math.sin(n) * r;
y = Math.cos(n) * r;
txtObj = docObj.textFrames.add();
txtObj.contents = str.charAt(i);
txtObj.translate(x,y);
}


■使い方
1:描画するドキュメントをアクティブにします。
2:ファイルメニューからスクリプトを実行します。
3:文字が円に沿って配置されます。


■ポイント
 楕円に沿って配置する場合には以下のように縦横別々の半径にします。

str = "文字列が円に沿って自動的に配置されます";
rx = 100; // 横半径
ry = 60; // 縦半径
docObj = activeDocument;
for (i=0; i<str.length; i++)
{
n = (i * (360 / str.length)) * Math.PI / 180;
x = Math.sin(n) * rx;
y = Math.cos(n) * ry;
txtObj = docObj.textArtItems.add();
txtObj.contents = str.charAt(i);
txtObj.translate(x,y);
}

■実際のスクリプトをダウンロード(sample.js.zip)