Wie erstelle ich Windfluss- / Aerodynamikdiagramme?


8

Ich brauche Hilfe bei der Erstellung gut aussehender vektorisierter Bilder dieser Art von Themen:

Windfluss Beispiel 1

Windfluss Beispiel 2

Ich arbeite viel mit LaTeX, wenn es um das Setzen von Texten geht, daher habe ich einige grundlegende Erfahrungen mit Tikz. Ich habe jedoch das Gefühl, dass ich mich etwas verloren fühle, wenn ich komplizierte Bilder wie die oben genannten machen muss.

Ich würde mich sehr freuen, wenn mich jemand in die richtige Richtung weisen könnte, wie ich solche Bilder machen könnte, vorzugsweise mit freier Software.


Benötigen Sie die Fähigkeit, Formeln einzugeben oder nur zu zeichnen?
Ryan

Zu Beginn würde das Zeichnen ausreichen, ich denke, ich könnte immer etwas in die Nachbearbeitung einfügen.
Dipol

Wenn Sie mit der Bewertung der Fragen fertig sind, ist es wichtig, die Frage zu akzeptieren. Andernfalls wird das falsche Signal gesendet. Akzeptieren Sie die Frage, die Ihrer Idee am nächsten kommt. Sie können auch eine der Fragen mit niedrigerer Abstimmung akzeptieren. Da diese Frage auch nette Nebenfragen enthält, können Sie spezifischere Werkzeugkombinationen stellen. Sehr erfreuliche Frage, danke dafür.
Joojaa

Erledigt! Ich werde hoffentlich bald weitere Fragen haben, die spezifischer sind. Soll ich dann eine neue Frage öffnen und auf diese verlinken?
Dipol

wenn Sie denken, dass das Verknüpfen hilft. Denken Sie daran, die Recherche durchzuführen. Besser ermittelte Fragen führen zu besseren Antworten.
Joojaa

Antworten:


11

Grafikanwendungen, die Vektorausgaben ausführen, sind verfügbar. Ich habe folgende Anwendungen ziemlich erfolgreich verwendet:

  • Mathematica <- meine Präferenz kann Bilder wie oben machen
  • Matlab (denken Sie daran, EPS zu exportieren)
  • Python mit matplotlib
  • Ahorn
  • PSTricks
  • Illustrator
  • Xara
  • Inkscape
  • Autocad

Möglicherweise müssen Sie auch 3D-Apps oder Grafik-Apps verwenden. Ich schlage vor:

  • yEd , verschiedene Grafiklayouts und kann ohne Installation über das Internet ausgeführt werden.
  • Gephi , kraftgerichtete Graphen
  • Maya, 3DsMax mit Vektor-Rendering
  • Creo, NX, Catia, Solidworks ...

Normalerweise ist es produktiver, ein Tool zu verwenden, das die Dinge tatsächlich als Grundlage grafisch darstellen und dann die EPS-Datei zur späteren Finalisierung in ein Grafikkünstler-Tool wie Illustrator importieren kann. Der eigentliche Vorteil ist, dass Sie mit den Grafiken spielen können, bevor Sie sich engagieren, sodass das Ändern einfach ist.

Es ist auch möglich, Dinge in Illustrator selbst grafisch darzustellen, wenn Sie möchten, einen Code , der Ihnen auf Ihrem Weg hilft.

Ressourcen

Hier ist eine kurze Liste von Dingen, bis ich Zeit habe, einige geeignete Beispiele zu finden (laminare Strömung rechts).

Einige Beispiele mit ähnlichen Komponenten (möglicherweise müssen Sie weitere Elemente hinzufügen, aber hier sind einige Teile des Puzzles):


6

Am besten nehmen Sie sich einen Vektoreditor und lernen, wie man ihn benutzt. Die obigen Beispiele scheinen nicht kompliziert zu sein, und ein grundlegendes Verständnis der Zeichnungsvektoren würde den Job gut machen.

Wenn Sie eines ausprobieren, würde ich von Illustrator oder Corel Draw abraten. Während beide leistungsstarke und beliebte Werkzeuge der Wahl sind, werden sie für Anfänger entmutigend erscheinen. Inkscape ist eine gute Wahl. Es ist kostenlos und das Lernen sollte kein Problem sein.


2
Inkscape bietet den zusätzlichen Vorteil, dass der Export nach PDF + Latex unterstützt wird. Sie erhalten PDF-Grafiken mit Latex-Texten.
Jnovacho

Lassen Sie mich das klarstellen: Wenn ich in Python mit Matplotlib und einem Geschwindigkeitsprofil wie dem im zweiten Bild oben eine Tragflächenform zeichne, kann ich sie in Inkscape importieren und dann Änderungen daran vornehmen, z. B. "Schrägstellen" und Drehen von die Grundstücke?
Dipol

@ Jack ja sowie die Fähigkeit, die Änderung der Linienbreiten neu einzufärben, bewegen Legenden usw.
Joojaa

Großartig, ich werde es versuchen!
Dipol

2

Erstens: .PY + Matplotlib -> .SVG

Dann .SVG -> Inkskape

.SVG ist jedoch leicht zu erlernen .PY -> .SVG

Sie können auch .PY + Matplotlib -> .PDF ausführen. Inkscape würde das auch öffnen.


Vielen Dank für Ihren Kommentar. Also arbeite ich in Python und speichere es als SVG-Datei, dann öffne ich es mit Inkscape?
Dipol

1
Xoder während Sie dies tun, könnten Sie ein Beispiel machen oder sollte ich. +1 auf jeden Fall, Python kann auch direkt mit inkscape sprechen, aber vielleicht ist dies eine andere Frage zu stellen?
Joojaa

1

Haftungsausschluss:

  1. Normalerweise programmiere ich nicht in Python, es sei denn, ich muss den Code eines anderen korrigieren
  2. Ich habe Matplotlib noch nie verwendet - dies ist mein erster Versuch, es zu verwenden, und da es interessant aussah, der EINZIGE Grund, warum ich diese Antwort poste.

Jetzt eine robustere Antwort: (Nicht, dass ich gerne Hausaufgaben für Doktoranden mache ...)

Alles hier wurde von der matplotlib-Website (siehe Beispiele) und von Stack Overflow (matplotlib save fig fig trim) gestohlen. Ich habe es nur kopiert / eingefügt und getestet.

Die resultierende Datei out.svg kann direkt in Inkscape geöffnet werden. Das Bild ist eine Gruppe / Gruppen kleinerer Bilder. Klicken Sie auf einen beliebigen Teil des Bildes und verwenden Sie dann die Option "Gruppierung aufheben" von Inkscape. Möglicherweise müssen Sie die Gruppierung einige Male aufheben, um einen Teil des Bildes direkt bearbeiten zu können.

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
        linewidth=0, antialiased=False)
ax.set_zlim(-1.01, 1.01)

ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))

fig.colorbar(surf, shrink=0.5, aspect=5)

#plt.show()

fig.set_size_inches(4,3) 

fig.set_dpi(40)

fig.savefig('out.svg', transparent=True, bbox_inches='tight', pad_inches=0)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.