Ich versuche einen Weg zu finden, um eine feste Objektfüllung in Millionen (mehr oder weniger) Zeilen umzuwandeln. zum Beispiel:
Ich kann keine Tools verwenden, aber im Idealfall möchte ich eine Ausgabe im SVG-Format (nicht erforderlich).
Dies ist eine Teillösung für Inkscape. Eine andere Antwort für Illustrator zeigt, wie man den Scribble-Effekt nicht zufällig verwenden und die gewünschte gerade Zick-Zack-Füllung erhalten kann. Das Ergebnis erfordert nur einige geringfügige manuelle Korrekturen (= Lückenfüllungen, wenn die Form komplex ist).
Inkscape hat keinen solchen Effekt. Es hat einen Pfadeffekt, der grobe Schraffurfüllungen erzeugt, aber das Ergebnis ist sehr grob. Theoretisch könnte es das gleiche wie Illustrator's Scribble sein, aber es hat einfach nicht die erforderliche Einstellbarkeit und Genauigkeit.
Der Fragesteller gab in einem Kommentar einen Hinweis: Es gibt eine Drittanbieter-Erweiterung eines Plotterherstellers (= EggBot), die ähnliche Füllmuster erzeugen kann. Ich überspringe sie, weil ich sie nicht habe. Ich habe versucht, sie zu bekommen, aber die Installation wurde gestoppt, da mein Inkscape nicht auf standardmäßige Weise installiert wurde.
Wenn Ihre Form vertikal symmetrisch ist, sodass die obere Hälfte in XY-Koordinaten als Y = f (x) dargestellt werden kann, wobei f eine Formel ist, die mit Python-Mathematikfunktionen und -operatoren geschrieben wurde, können Sie die Zickzackfüllung mit der Funktionsplotter-Erweiterung von Inkscape zeichnen. Als Beispiel überprüfen wir Ihren Kreis.
Ich muss ein wenig schummeln, weil die genaue Formel für eine dreieckige Zick-Zack-Kurve komplex ist. Es braucht knifflige Modulo-Arithmetik. Ich weiß nicht, wie ich es mit Pythons Funktionen schreiben soll. Ein kompetenter Programmierer könnte es wahrscheinlich in einer Sekunde sagen.
Aber Python hat einige allgemein bekannte (= wie in Excel) elementare mathematische Dinge wie Sinus, Pi und Squareroot. Ich benutze sie, weil die resultierende Kurve später in gerade Linien umgewandelt werden kann.
Die Ansicht mit hohem Zoom zeigt, dass es sich tatsächlich um eine weiche Kurve handelt:
Um es ein Quadrat zu zeichnen und GoTo Erweiterungen> Render> Funktion Plotter. Ich habe das Quadrat ausgewählt, das x- und y-Bereiche von -1 bis +1 darstellt.
Die Funktion wird aus der Elektronik übernommen. Es ist amplitudenmodulierter Sinus (kein Träger!). Der Hüllkurventeil sqrt (1-x * x) ist ein Halbkreis. Die letzte Zahl 40 definiert, dass es 40 vollständige Zyklen der Sinuskurve gibt, dh 40 obere und untere Spitzen. Es wurden ungefähr 161 Knoten im ungefähren Bereich definiert. In jedem Nulldurchgang und jeder Spitze befindet sich ein Knoten.
Wenn Sie mehr wollen, sagen wir 100 volle Zyklen, müssen Sie 40 zu 100 und 161 zu 401 ändern.
Wenn man alle Knoten in Eckpunkte konvertiert, erhält man die Dreiecksform ohne Berechnungen. Erweiterung Pfad ändern> Reduzieren Bezier erledigt den Job. Hier ist ein Beispiel für eine Abflachung:
Sie sollten Flatten anwenden und dann alle Nulllinienknoten außer dem am weitesten links und am weitesten rechts liegenden mit dem Werkzeug none auswählen und DEL drücken. Dann wieder abflachen und fertig - nur gerade Linien, keine zusätzlichen Knoten:
Speichern Sie es als einfaches SVG, um alle Inkscape-eigenen Teile zu löschen (es sollte keine geben, da das Ergebnis ein Pfad ist und keine Funktionen hat).
Ich denke, die Funktionsplotmethode ist nicht praktikabel, also versuche ich etwas anderes. Wenn gerade parallele Linien als Füllung akzeptiert werden (= kein Zickzack), kann man eine Reihe von Linien kacheln und entweder eine Schnittmaske festlegen oder die Linien destruktiv mit einer Form teilen
Inkscape bietet verschiedene Möglichkeiten, um eine Reihe von geraden Linien zu erstellen
Die 3. Methode ist am einfachsten. Es generiert die Zwischenzeilen als Gruppe:
Die Linien sollten nicht gruppiert und kombiniert werden (Pfad> Kombinieren), um sie sicher als ein Objekt zu halten. Gruppen können leicht beschädigt werden, da ihre Mitglieder weiterhin unabhängig ausgewählt werden können. Darüber hinaus funktionieren viele Pfadoperationen nicht mit Gruppen, sondern benötigen einzelne Pfade oder kombinierte Pfade.
Das nächste Bild zeigt das Ergebnis, wenn eine Form auf die Linien gelegt und Objekt> Clip> Festlegen angewendet wird:
Der Ausschnitt kann jederzeit zurückgenommen werden, die Originalteile sind dort intakt, nur teilweise verborgen. Es gibt keine Möglichkeit, etwas am scheinbaren Ende der Zeile zu fangen, da es keinen Knoten gibt. Dazu müssen die Linien destruktiv aufgeteilt werden oder es darf kein Clipping erfolgen. Das Einrasten an der Pfadkreuzung funktioniert in Inkscape sehr gut.
Wir können das Einrasten nutzen, indem wir den dreieckigen Zickzack mit dem Stift zeichnen:
Der blaue Zickzack wird mit dem Stift nur durch Klicken erstellt, ein Klick pro Kreuzungspunkt. Es dauerte ungefähr eine Minute. Der blaue Zickzack ist ein unabhängiger Einzelpfad.
Wenn es störend ist, dass die Hälfte der Liniensegmente s vertikal und die andere Hälfte geneigt ist, wird dies durch Drehen der Linien vor dem Zeichnen des Zickzacks behoben.
Es stellt sich die Frage: "Wenn man die Linien zum Beispiel mit Pfad> Pfad schneiden teilt, können die Teile irgendwie automatisch und nicht einzeln zu einem Zickzack kombiniert werden. Theoretisch JA. Aber es gibt Schwierigkeiten, die das Ergebnis unsicher machen.
Zuerst teilen wir die Linien mit der gleichen schwarzen Kurve. Eine obere Form teilt die zugrunde liegenden Linien wirklich, wenn sie kombiniert werden (Pfad> Kombinieren). Die Überreste können einfach mit dem normalen Auswahlwerkzeug im Modus "Auswählen, wenn berührt" (= Alt + Ziehen) ausgewählt und entfernt werden:
Dann können wir die unteren Endknoten aller Linien auswählen und die Knotenfunktion ausprobieren. Ausgewählte Knoten verbinden. Das Ergebnis ist leider unerwartet:
Alle Knotenverbindungs-Endverbindungsvorgänge wählen, wenn sie gebündelt sind, die Reihenfolge unvorhersehbar aus. Die Verbindungen müssen einzeln hergestellt werden. Es ist viel einfacher, den Zickzack mit dem Stift zu zeichnen, wie oben gezeigt.
Der Illustrator-Scribble-Effekt macht viel, wonach Sie fragen
Wenden Sie einfach Scribble auf die Pfadfüllung an. Passen Sie dann die Scribble-Einstellungen an, um eine Variation von 0 zu erhalten.
Da dies ein Live-Effekt ist, müssen Sie ihn mit Objekt → Darstellung erweitern erweitern
Jetzt misst Scribble den Abstand zwischen Startpunkten etwas anders als in Ihrem Beispiel. Dies kann ein Problem sein oder auch nicht, es ist in der Problemeinstellung nicht so genau beschrieben.
quelle
Wenn Sie einen Weg finden, die Hüllkurve Ihrer Form mathematisch zu beschreiben, können Sie die Funktion
sin
mit einem kurzen Zeitraum multiplizieren . Für das Festplattenbeispielsin(100*x) * sqrt(1 - x**2)
scheint es gut zu funktionieren:Hier ist ein Live- Beispiel , in dem Sie die Parameter mit Schiebereglern ändern können.
Es ist möglich , eine Funktion als SVG aus plotten gnuplot , matplotlib oder dieser Webseite .
quelle