Hay un gran guión: Rotate Toward Point de Hiroyuki Sato . El guión gira los objetos de la selección hacia el centro del objeto de primer plano.
Asegúrese de colocar el objeto "seleccionado" (hacia el que desea girar) en la parte superior.
Clic derecho → Organizar → Traer al frente ( Shift+ Ctrl+ ])
Simplemente seleccione todo y ejecute el script.
Antes después
( Este video también muestra el guión en acción: primero los distribuye a lo largo del camino y luego los gira hacia la persona central)
Código a continuación
// rotateTowardPoint.jsx
// rotates the objects in the selection toward the center of the foreround object.
// USAGE: select the objects and run this script.
// test env: Adobe Illustrator CC (Win/Mac)
// Copyright(c) 2014 Hiroyuki Sato
// http://shspage.blogspot.jp/
// This script is distributed under the MIT License.
// See the LICENSE file for details.
// Fri, 14 Feb 2014 21:08:40 +0900
function main(){
// settings:
// extract_groups: rotates each item in the groups, otherwise rotates each groups (checkbox value)
// show_dialog: shows a dialog before execution, otherwise shows no dialog
var conf = {
extract_groups : false,
show_dialog : true
}
if(documents.length < 1) return;
var sels = activeDocument.selection;
if( sels.length < 2 ) return;
if( conf.show_dialog){
var win = new Window("dialog", "rotateTowardPoint");
win.alignChildren = "fill";
win.chk = win.add("checkbox", undefined, "extract groups");
win.btnGroup = win.add("group", undefined );
win.btnGroup.alignment = "center";
win.btnGroup.okBtn = win.btnGroup.add("button", undefined, "OK");
win.btnGroup.cancelBtn = win.btnGroup.add("button", undefined, "Cancel");
var getValues = function(){
conf.extract_groups = win.chk.value;
}
win.btnGroup.okBtn.onClick = function(){
getValues();
rotateToPoint( sels, conf );
win.close();
}
win.btnGroup.cancelBtn.onClick = function(){
win.close();
}
win.show();
} else {
rotateToPoint( sels, conf );
}
}
function rotateToPoint( sels, conf ){
var target = sels[0];
if( conf.extract_groups ){
sels = extractGroup( sels.slice(1) );
} else {
sels = sels.slice(1);
}
// gets the center of the foreground object.
// the other objects are rotated toward this point.
var point = getCenter( target );
for(var i = 0; i < sels.length; i++){
var t = getAngle( point, getCenter(sels[i]));
sels[i].rotate( t - 90, true, true, true, true, Transformation.CENTER );
}
}
function getCenter(p){
return [p.left + p.width / 2,
p.top - p.height / 2];
}
function getAngle(p1, p2){
return Math.atan2(p2[1] - p1[1],
p2[0] - p1[0]) * 180 / Math.PI;
}
function extractGroup( s, r ){
if( r == undefined ) r = [];
for( var i = 0; i < s.length; i++){
if( s[i].typename == "GroupItem" ){
extractGroup( s[i].pageItems, r );
} else {
r.push( s[i] );
}
}
return r;
}
main();
Lo bueno de usar este script es que no necesita expandir nada (no destructivo). Si usó un trazo de pincel, puede cambiarlo fácilmente más tarde a uno diferente si es necesario.
Yo usaría Efecto > Distorsionar y Transformar > Transformar
Dibuja una fila vertical de flechas. El punto inferior se utiliza como punto de rotación.
Agrupa todo eso.
Elige Effect > Distort & Transform > Transform
del menú
Establezca el punto de origen en la parte inferior izquierda :
Luego agregue la cantidad de grados negativos que desea en el campo Ángulo y la cantidad de copias que desea en el campo Copias .
Haga clic en Okay
. Elija Object > Expand Appearance
, luego Object > Ungroup
(dos veces) y elimine lo que no desee.
Illustrator también hará cálculos por usted si es necesario....
Si sabe que desea 8 ángulos de flechas dentro de una sección de 90°, puede insertarlos 360/32
en el campo Ángulo y luego insertarlos 8
en el campo Copias.
360 grados de un círculo / 4 secciones con 8 columnas en cada sección por lo que 8x4 = 32, por lo tanto 360/32
Illustrator calculará el grado del ángulo para que quepan 8 copias en un cuadrante del círculo. Salga del campo Ángel, luego regrese y simplemente agregue un signo menos (-) delante del ángulo para que giren a la derecha.
joojaa
jose kh
scott