Wie biege ich mehrere Linien eines Diagramms in AI CS5?

Ich habe ein Radardiagramm mit drei Achsen erstellt und möchte alle Linien im Diagramm gekrümmt statt gerade machen. Ich habe keinen zufriedenstellenden Weg gefunden, alle Pfade (dh die Kanten der Dreiecke) so zu biegen, dass sie homogen aussehen. Ich kann natürlich das Umformen-Werkzeug verwenden, aber dann sieht der Grad, in dem jede Linie gekrümmt ist, nur zufällig aus. Das Hüllkurven-Verzerrungswerkzeug sieht vielversprechend aus, aber es ändert auch die Position der Ecken (der Anker) meines Diagramms, was offensichtlich nicht akzeptabel ist. Gibt es eine Möglichkeit, dies auf einfache und reproduzierbare Weise zu erreichen? (Ich muss mehrere Grafiken erstellen, die vergleichbar sein sollten).

Beachten Sie, dass ich nicht (unbedingt) versuche, perfekte Kreise zu erstellen, wie auf dem Bild unten gezeigt. Das Ziel ist vielmehr, von geraden Linien zu (leicht) gekrümmten überzugehen.

so sieht mein Diagramm gerade aus: mein Graphund so möchte ich es ungefähr sehen:wie es aussehen soll

Vielen Dank

Antworten (2)

Hier ist eine ganz andere Lösung. Basierend auf Ihren Kommentaren, die Sie in der Frage bearbeiten sollten.

#target illustrator

// jooBloat.jsx 
//
// Copyright (c) 2015 Janne Ojala
// License: http://opensource.org/licenses/MIT

main();

function main(){
  handlePaths(activeDocument.selection); 
}

function bloatPoint(path, amount) {
  var pts = path.pathPoints;
  for(var i = 0; i < pts.length; i++){
      var pos_prev = pts[(pts.length+i-1)%pts.length].anchor;
      var pos = pts[i].anchor;
      var pos_next = pts[(i+1)%pts.length].anchor;

      pts[i].pointType = PointType.SMOOTH;
      pts[i].rightDirection = add(pos,smul(0.33,sub(pos_next, pos_prev)));
      pts[i].leftDirection = add(pos,smul(0.33,sub(pos_prev,pos_next)));
  }
}

function sub(a, b){
   arr=Array(2);
   arr[0]=a[0]-b[0];
   arr[1]=a[1]-b[1];
   return arr;
}
function add(a, b){
   arr=Array(2);
   arr[0]=a[0]+b[0];
   arr[1]=a[1]+b[1];
   return arr;
}

function smul(a, b){
   arr=Array(2);
   arr[0]=a*b[0];
   arr[1]=a*b[1];
   return arr;
}


function handlePaths(sel) {
  for(var i = 0; i < sel.length; i++){
      if(sel[i].typename == "PathItem"){
          bloatPoint(sel[i]);
      }
  }
}

Wählen Sie eine beliebige Anzahl geschlossener Pfade aus und führen Sie das Skript aus. Ergebnisse in:

Geben Sie hier die Bildbeschreibung ein

Bild 1 : Vor und nach dem Ausführen des Skripts auf Dreiecken.

danke, beides sind ausgezeichnete Antworten. Jetzt muss ich mich entscheiden, was für meine Zwecke besser ist...

Wie man ein Dreieck an 3 Punkte anpasst, wird in diesem Beitrag beschrieben

3_Punkt_Bogen

Bild 2 : Dreipunktbogen

Es stellt sich also heraus, dass Sie einige Eigenschaften von Kreisen, Linien und >Dreiecken verwenden können. Sie können immer einen Kreis bilden, der 2 Punkte trifft, indem Sie den > Mittelpunkt des Kreises auf die Mittelpunktsnormale der Verbindungslinie ziehen. Sie können >den Mittelpunkt finden, indem Sie beliebige Kreise zeichnen, die sich kreuzen. Sie werden > die Mitte überqueren, wenn Sie also die Schnittpunkte verbinden, erhalten Sie die > Mitte normal. Da nun 3 Punkte zwei davon erfüllen müssen, liegt der EINZIGE Kreismittelpunkt am Schnittpunkt der 2 Normalen.

Es gibt ein Skript von Hiryoki Sato namens circumcircle , das dies etwas schneller macht als das manuelle Zeichnen von Linien.

Danke, ein einfaches und cooles Skript, und anhand der Bilder, die ich gepostet habe, ist es die richtige Antwort. Ich wollte eigentlich keine perfekten Kreise machen. Nur geschwungene Linien, also lasse ich die Frage offen in der Hoffnung, dass es eine andere mögliche Lösung gibt.
@Sie können dem Kreis mit Effekt -> Aufrauen Rauschen hinzufügen
@5mark, dann möchten Sie vielleicht Ihre Frage bearbeiten.