我经常发现自己需要创建一个对象数组,要么是直线,要么是围绕中心点旋转,要么是沿着路径倾斜。目前,我使用各种不同的、毫无疑问是愚蠢的方法来做到这一点,通常一次只用一点脑力数学和变换调色板 - 而且我知道这是很愚蠢的做法。有人能告诉我正确的方法吗?或者如果在 Illustrator 中无法实现,能告诉我一个插件吗?
答案1
转到效果 -> 扭曲/变换 -> 变换...添加所需的副本数量,然后使用数组控件
答案2
有几种方法可以实现这一点...
最快的方法是在复制对象的同时平移、缩放或旋转对象。要在 Windows 中复制对象,请按住“alt”键*。然后可以按 CTRL + D 重复转换和复制。
为了获得更高的精度,请从工具箱中选择一个转换工具并按 Enter。然后会出现一个对话框,允许您输入数值,并有一个“复制”按钮。同样,一旦对话框关闭,您可以按 CTRL + D 重复。
混合工具可以“步进”对象,它还可以选择旋转对象以匹配路径。
“动作”面板可以记录和回放多个转换。
Illustrator 支持多种脚本语言,这提供了最灵活的解决方案,但学习和设置通常更耗时。
*Mac 组合键可能略有不同。
答案3
您还可以使用脚本。例如,您可以这样创建 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 工具包中并从那里运行它。
答案4
我发现的最简单的方法:
随着选择工具(黑色箭头图标或V键盘),选择您想要排列的东西。
点击旋转工具(旋转箭头图标或R键盘),按住Alt并选择旋转中心。
弹出框将出现。输入旋转角度(例如:如果您希望三个物体排列成一个圆圈,则将 360 除以 3)。单击复制。
您会注意到只出现了一个东西。单击Ctrl+D即可复制您想要的份数。
希望这有帮助!