在Illustrator中创建对象数组的最佳方法?
我经常发现自己需要创建一个对象阵列,或者是直线,或者是围绕中心点旋转,或者是沿着路径倾斜。目前我使用了各种不同的、毫无疑问是愚蠢的方法来做这件事,通常是一次一个,用一点头算和变换调色板–而且我知道这是愚蠢的方法。谁能给我指出正确的方法,或者如果在Illustrator中不可能的话,能给我一个插件吗?
我经常发现自己需要创建一个对象阵列,或者是直线,或者是围绕中心点旋转,或者是沿着路径倾斜。目前我使用了各种不同的、毫无疑问是愚蠢的方法来做这件事,通常是一次一个,用一点头算和变换调色板–而且我知道这是愚蠢的方法。谁能给我指出正确的方法,或者如果在Illustrator中不可能的话,能给我一个插件吗?
有几种方法可以达到这个目的……
最快捷的方法是在复制对象的同时对其进行平移、缩放或旋转。要在Windows中复制一个对象,按住'alt'键/*。
要想获得更高的精确度,请从工具箱中选择一个变换工具,然后按回车键。然后出现一个对话框,允许您输入数值,并有一个 “复制 "按钮。同样,一旦对话关闭,您可以按CTRL + D重复。
Blend工具可以 "步进 "对象,它也有一个旋转对象以匹配路径的选项。
‘动作'调色板可以记录和回放多个变换。
Illustrator支持多种语言进行脚本编写,这提供了最灵活的解决方案,但一般来说,学习和设置起来比较费时。
*Mac键组合可能略有不同。
你也可以使用脚本。例如,你可以这样创建20个路径项目,从中心开始随机旋转和定位。
// creating a document
var doc = app.documents.add();
// adding a new layer
var layer = doc.layers.add();
// variable declarations
var i, ray, displacement, dx, dy;
// creating 20 path items in a loop and setting their parameters
for (i = 0; i < 20; i++) {
// adding a path item and saving it to the "ray" variable
ray = layer.pathItems.add();
// defining path points
ray.setEntirePath([[0, 0], [0, 10]]);
// generating a random angle for rotation
// note: rotation in Illustrator is counter-clockwise
ray.rotation = Math.round(Math.random() * 360);
// applying rotation to the path, using its bottom as the origin point
ray.rotate(ray.rotation, true, true, true, true, Transformation.BOTTOM);
// moving the path away from the center of the document by "displacement" amount
displacement = 10 + Math.random() * 10;
// calculating x and y coordinates from "displacement"
// (which is basically a hypotenuse)
dx = displacement * Math.sin( (180 + ray.rotation) * Math.PI / 180 );
dy = - displacement * Math.cos( (180 + ray.rotation) * Math.PI / 180 );
// translating the path
ray.translate(dx, dy);
}
然后你可以将其保存为 “somefile.js",并通过文件-/>脚本-/>其他脚本来执行。或者把它粘贴到ExtendScript工具包中,然后在那里运行。