Ecke zeigt Pfeilgitter

Geben Sie hier die Bildbeschreibung einHey Leute, ich habe das gerade in Illustrator manuell hochgepeitscht, aber ich möchte es in einem viel größeren Maßstab tun. Hat jemand eine Idee, wie man diesen Prozess automatisieren kann, oder hat ein Skript, das so etwas macht? Vielen Dank!

Außerdem habe ich es so gemacht - gibt es im Allgemeinen einen einfacheren Weg?Geben Sie hier die Bildbeschreibung ein

Antworten (3)

Es gibt ein tolles Drehbuch – Rotate Toward Point von Hiroyuki Sato . Das Skript dreht die Objekte in der Auswahl in Richtung der Mitte des Vordergrundobjekts.

Stellen Sie sicher, dass Sie das "ausgewählte" Objekt (dasjenige, zu dem Sie gedreht werden sollen) oben platzieren.

Rechtsklick → Anordnen → Nach vorne bringen ( Shift+ Ctrl+ ])

Sie wählen einfach alles aus und führen das Skript aus.

         Vorher Nachher

Vor Nach

( Dieses Video zeigt auch das Skript in Aktion - zuerst verteilt er sie entlang des Pfads und dreht sie dann in Richtung der mittleren Person)


Geben Sie hier die Bildbeschreibung ein


Code unten

// 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();

Das Schöne an der Verwendung dieses Skripts ist, dass Sie nichts erweitern müssen (nicht destruktiv). Wenn Sie einen Pinselstrich verwendet haben, können Sie ihn später bei Bedarf leicht durch einen anderen ersetzen.

Es kann hergestellt werden, indem Pfeilmischungen dupliziert und Stacheln ersetzt werden

Geben Sie hier die Bildbeschreibung ein

  • Erstellen Sie die Stacheln, indem Sie zwei Winkel mischen, erweitern Sie sie und heben Sie die Gruppierung auf

Stacheln

  • Erstellen Sie eine Mischung zwischen einem horizontalen und einem vertikalen Pfeil

Geben Sie hier die Bildbeschreibung ein

  • Wählen Sie die Pfeilmischungen und einen der Winkel aus und ersetzen Sie die Wirbelsäule

Wirbelsäule

Ergebnis

Ergebnis

Ich würde Effekt > Verzerren & Transformieren > Transformieren verwenden

Zeichne eine vertikale Reihe von Pfeilen. Der untere Punkt wird als Rotationspunkt verwendet.

Geben Sie hier die Bildbeschreibung ein

Gruppiere das alles.

Wählen Sie Effect > Distort & Transform > Transformaus dem Menü

Setzen Sie den Ursprungspunkt auf Unten links :

Geben Sie hier die Bildbeschreibung ein

Fügen Sie dann die gewünschte Anzahl an negativen Graden im Feld „Winkel “ und die gewünschte Anzahl der Kopien im Feld „Kopien“ hinzu .

Geben Sie hier die Bildbeschreibung ein

Klicken Sie auf Okay. Wählen Sie Object > Expand Appearancedann Object > Ungroup(zweimal) und löschen Sie, was Sie nicht möchten.

Geben Sie hier die Bildbeschreibung ein

Illustrator wird bei Bedarf auch für Sie rechnen....

Wenn Sie wissen, dass Sie 8 Pfeilwinkel innerhalb eines 90°-Abschnitts benötigen, können Sie 360/32in das Feld „ Winkel “ und dann 8in das Feld „Kopien“ einfügen.

360 Grad eines Kreises / 4 Abschnitte mit 8 Säulen in jedem Abschnitt also 8x4 = 32, also 360/32

Illustrator berechnet den Winkelgrad so, dass 8 Kopien in einen Quadranten des Kreises passen. Tab aus dem Angel-Feld, dann zurück und fügen Sie einfach ein Minuszeichen (-) vor dem Winkel hinzu, damit sie sich nach rechts drehen.

Schade, dass es keine Skew-Option gibt
Das ist großartig, aber gibt es eine Möglichkeit, das Rasterlayout zu erstellen, das ich im ursprünglichen Beitrag habe?
@JoshK-H Wenn der Rasteraspekt zwingend erforderlich ist , denke ich ehrlich gesagt, dass entweder Ihre bestehende Methode oder die von Danielillo gepostete Methode die besseren Lösungen sind. Ich bin in diesem Fall kein Fan von Javascript, da keiner der Pfeile auf irgendetwas ausgerichtet ist. Meine Methode richtet die Pfeile aneinander aus, während sie auf eine zentrale Stelle zeigen. Die Methode von Danielillo richtet die Pfeile an einem rechteckigen Gitter aus, während sie auf einen zentralen Ort zeigen. Das Javascript ändert nur die Winkel der Pfeile. -- Aber es ist nicht mein Projekt :)