Come realizzare diagrammi di flusso del vento / aerodinamici?


8

Ho bisogno di aiuto su come creare belle immagini vettoriali di questi tipi di temi:

esempio di flusso del vento 1

esempio di flusso del vento 2

Lavoro molto con LaTeX per quanto riguarda la composizione, quindi ho un'esperienza di base con Tikz. Tuttavia, sento che se devo creare immagini complicate come quelle sopra, mi ritrovo un po 'perso.

Gradirei molto se qualcuno potesse indicarmi la giusta direzione su come fare per realizzare questo tipo di immagini, preferibilmente usando software libero.


Hai bisogno della possibilità di inserire formule o semplicemente disegnare?
Ryan

Per iniziare con il disegno sarebbe sufficiente, suppongo che potrei sempre inserirne un po 'in post elaborazione.
Dipole,

Quando hai finito di valutare le domande, è importante accettare la domanda. Altrimenti invia il segnale sbagliato. Accetta la domanda che ti sembra più vicina a rispondere alla tua idea. Sentiti libero di accettare anche una delle domande meno votate. Poiché questa domanda ha anche delle belle domande secondarie, potresti porre combinazioni di strumenti più specifiche. Domanda molto piacevole grazie per quello.
joojaa,

Fatto! Spero di avere presto delle domande di follow-up, che sono più specifiche. Dovrei quindi aprire una nuova domanda e collegarmi a questa?
Dipole,

se pensi che il collegamento sia d'aiuto. Ricorda di fare la ricerca, domande più ricercate portano a risposte migliori.
joojaa,

Risposte:


11

Sono disponibili applicazioni grafiche che producono output vettoriale. Ho usato con successo le seguenti applicazioni:

  • Mathematica <- la mia preferenza può fare immagini come sopra
  • Matlab (ricorda di esportare eps)
  • Python usando matplotlib
  • acero
  • PSTricks
  • Illustratore
  • Xara
  • Inkscape
  • Autocad

Potresti aver bisogno di usare app 3d o app grafiche anche io suggerisco:

  • yEd , vari layout grafici e può essere eseguito da Internet senza bisogno di installazione.
  • Gephi , grafici a forza forzata
  • Maya, 3DsMax con rendering vettoriale
  • Creo, NX, Catia, Solidworks ...

Di solito è più produttivo utilizzare alcuni strumenti che possono effettivamente rappresentare graficamente le cose come base e quindi importare il file EPS in uno strumento per artisti grafici come Illustrator per la successiva finalizzazione. Il vero vantaggio è che puoi giocare con i grafici prima di essere coinvolto, quindi cambiare è facile.

È anche possibile rappresentare graficamente le cose da soli in Illustrator, se lo si desidera, un po 'di codice per aiutarti lungo la strada.

risorse

Ecco un breve elenco di cose finché non avrò il tempo di trovare alcuni esempi adatti (flusso laminare giusto).

Alcuni esempi con componenti simili (potrebbe essere necessario aggiungere più elementi ma ecco alcune parti del puzzle):


6

La tua scommessa migliore è quella di prendere un editor vettoriale e imparare come usarlo. Gli esempi sopra non sembrano complicati e una comprensione di base dei vettori di disegno farebbe il lavoro bene.

Se ne proverai uno, consiglierei contro Illustrator o Corel Draw. Mentre entrambi sono strumenti di scelta potenti e popolari, sembreranno scoraggianti per un principiante. Inkscape è una buona scelta. È gratuito e l'apprendimento non dovrebbe essere un problema.


2
Inkscape ha l'ulteriore vantaggio di supportare l'esportazione in PDF + Latex. Ottieni grafica PDF con testi in lattice.
jnovacho,

Fammi capire bene: se tracciamo una forma di profilo alare in Python usando Matplotlib e un profilo di velocità come quello nella seconda immagine sopra, posso importarli in Inkscape e quindi apportare modifiche ad essi come 'inclinazione' e rotazione di le trame?
Dipole,

@ Jack sì, così come la possibilità di ricolorare le larghezze delle linee di cambiamento per spostare le legende, ecc.
joojaa,

Fantastico, ci proverò!
Dipole,

2

Primo: .PY + Matplotlib -> .SVG

Quindi, .SVG -> Inkskape

Tuttavia, .SVG è abbastanza facile da imparare ad andare .PY -> .SVG

Puoi anche fare .PY + Matplotlib -> .PDF. Anche Inkscape lo avrebbe aperto.


Grazie per il tuo commento. Quindi lavoro in Python e lo salvo come file svg, quindi lo apro con Inkscape?
Dipole,

1
Xor mentre in questo caso potresti fare un esempio o dovrei I. +1 in ogni caso, Python può anche parlare direttamente con Inkscape ma forse questa è una domanda diversa da porre?
joojaa,

1

Avvertenze:

  1. In genere non programma in Python a meno che non debba correggere il codice di qualcun altro
  2. Non ho mai usato Matplotlib: questo è il mio primo tentativo di utilizzo e, dato che sembrava interessante, l'UNICA ragione per cui sto postando questa risposta.

Ora una risposta più solida: (Non che mi diverta a fare i compiti per i dottorandi ...)

Tutto qui è stato rubato - rubato completamente - dal sito Web matplotlib (vedi esempi) e da Stack Overflow (matplotlib salva il taglio dell'immagine del fico). Tutto quello che ho fatto è stato copiarlo / incollarlo e testarlo.

Il file out.svg risultante può essere aperto direttamente in Inkscape. L'immagine è un gruppo / gruppi di immagini più piccole. Fai clic su qualsiasi parte dell'immagine, quindi usa l'opzione "Ungroup" di Inkscape. Potrebbe essere necessario separare alcune volte per poter manipolare direttamente parte dell'immagine.

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)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.