Rejilla de flecha apuntando esquina

ingrese la descripción de la imagen aquíHola amigos, acabo de preparar esto manualmente en Illustrator, pero busco hacerlo a una escala mucho mayor. ¿Alguien tiene una idea de cómo automatizar este proceso o tiene un script que hace algo así? ¡Gracias!

Además, así es como lo hice: ¿hay una manera más fácil en general?ingrese la descripción de la imagen aquí

Respuestas (3)

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

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)


ingrese la descripción de la imagen aquí


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.

Se puede hacer duplicando mezclas de flechas y reemplazando espinas.

ingrese la descripción de la imagen aquí

  • Crea las espinas fusionando dos ángulos, expande y desagrupa

espinas

  • Crear una mezcla entre una flecha horizontal y vertical

ingrese la descripción de la imagen aquí

  • Seleccione las mezclas de flechas y uno de los ángulos y reemplace la columna vertebral

columna vertebral

Resultado

resultado

Yo usaría Efecto > Distorsionar y Transformar > Transformar

Dibuja una fila vertical de flechas. El punto inferior se utiliza como punto de rotación.

ingrese la descripción de la imagen aquí

Agrupa todo eso.

Elige Effect > Distort & Transform > Transformdel menú

Establezca el punto de origen en la parte inferior izquierda :

ingrese la descripción de la imagen aquí

Luego agregue la cantidad de grados negativos que desea en el campo Ángulo y la cantidad de copias que desea en el campo Copias .

ingrese la descripción de la imagen aquí

Haga clic en Okay. Elija Object > Expand Appearance, luego Object > Ungroup(dos veces) y elimine lo que no desee.

ingrese la descripción de la imagen aquí

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/32en el campo Ángulo y luego insertarlos 8en 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.

Lástima que no hay opción de sesgo
Esto es genial, pero ¿hay alguna manera de crear el diseño de cuadrícula que tengo en la publicación original?
@ JoshK-H Si el aspecto de la cuadrícula es imperativo , honestamente creo que su método existente o el método publicado por Danielillo son las mejores soluciones. No soy fanático del javascript en este caso porque ninguna de las flechas está alineada con nada. Mi método alinea las flechas entre sí mientras apunta a una ubicación central. El método de Danielillo alinea las flechas con una cuadrícula rectangular mientras apunta a una ubicación central. El javascript solo cambia los ángulos de las flechas. -- Pero no es mi proyecto :)