Bagaimana cara membuat diagram aliran angin / aerodinamis?

8

Saya butuh bantuan tentang cara membuat gambar vektor yang terlihat bagus dari tema-tema ini:

contoh aliran angin 1

contoh aliran angin 2

Saya banyak bekerja dengan LaTeX ketika datang ke pengaturan huruf jadi saya punya pengalaman dasar dengan Tikz. Namun saya merasa bahwa jika saya perlu membuat gambar yang rumit seperti yang di atas, saya merasa sedikit bingung.

Saya akan sangat menghargai jika seseorang dapat mengarahkan saya ke arah yang benar tentang bagaimana saya bisa membuat gambar seperti ini, lebih disukai menggunakan perangkat lunak gratis.

Dipol
sumber
Apakah Anda memerlukan kemampuan untuk memasukkan formula atau hanya menggambar?
Ryan
Untuk memulai dengan menggambar sudah cukup, saya kira saya selalu bisa memasukkan beberapa dalam pemrosesan posting.
Dipole
Ketika Anda selesai mengevaluasi pertanyaan, penting untuk menerima pertanyaan. Kalau tidak mengirim sinyal yang salah. Terima pertanyaan yang terasa paling dekat dengan jawaban atas ide Anda. Jangan ragu untuk menerima bahkan salah satu dari pertanyaan dengan suara lebih rendah. Karena pertanyaan ini juga memiliki pertanyaan sampingan yang bagus, Anda mungkin bertanya kombinasi alat yang lebih spesifik. Pertanyaan yang sangat menyenangkan terima kasih untuk itu.
joojaa
Selesai! Mudah-mudahan saya akan memiliki pertanyaan lanjutan segera, yang lebih spesifik. Haruskah saya membuka pertanyaan baru dan menautkan ke yang ini?
Dipole
jika menurut Anda menghubungkan membantu. Ingatlah untuk melakukan penelitian, pertanyaan-pertanyaan dengan penelitian lebih baik mengarah pada jawaban yang lebih baik.
joojaa

Jawaban:

11

Aplikasi grafik yang menghasilkan keluaran vektor tersedia. Saya sudah menggunakan aplikasi berikut dengan cukup sukses:

  • Mathematica <- preferensi saya dapat melakukan gambar seperti di atas
  • Matlab (ingat untuk mengekspor eps)
  • Python menggunakan matplotlib
  • Maple
  • PSTricks
  • Ilustrator
  • Xara
  • Inkscape
  • Autocad

Sulit Anda mungkin perlu menggunakan aplikasi 3d atau aplikasi grafik juga saya sarankan:

  • Ya , berbagai tata letak grafik dan dapat dijalankan dari internet tanpa instalasi.
  • Gephi , grafik gaya terarah
  • Maya, 3DsMax dengan render vektor
  • Creo, NX, Catia, Solidworks ...

Biasanya lebih produktif menggunakan beberapa alat yang benar-benar dapat membuat grafik hal-hal sebagai dasar dan kemudian mengimpor file EPS ke alat seniman grafis seperti ilustrator untuk finalisasi nanti. Manfaat sebenarnya adalah Anda dapat bermain dengan grafik sebelum Anda terlibat sehingga perubahan itu mudah.

Anda juga dapat membuat grafik sendiri di Illustrator jika Anda mau, beberapa kode untuk membantu Anda dalam perjalanan.

Sumber daya

Inilah beberapa daftar barang sampai saya punya waktu untuk menemukan beberapa contoh yang cocok (aliran laminar benar).

Beberapa contoh dengan komponen yang serupa (Anda mungkin perlu menambahkan lebih banyak barang tetapi inilah beberapa bagian dari teka-teki):

joojaa
sumber
6

Taruhan terbaik Anda adalah mengambil editor vektor dan belajar cara menggunakannya. Contoh di atas tampaknya tidak rumit, dan pemahaman dasar tentang menggambar vektor akan melakukan pekerjaan dengan baik.

Jika Anda akan mencobanya, saya akan menyarankan agar Illustrator atau Corel Draw tidak. Walaupun keduanya merupakan alat pilihan yang kuat dan populer, keduanya akan tampak menakutkan bagi pemula. Inkscape adalah pilihan yang bagus. Ini gratis dan belajar itu seharusnya tidak menjadi masalah.

Hussein N
sumber
2
Inkscape memiliki manfaat tambahan untuk mendukung ekspor ke PDF + Lateks. Anda mendapatkan grafik PDF dengan teks Lateks.
jnovacho
Jadi izinkan saya meluruskan ini: Jika saya memplot bentuk airfoil di Python menggunakan Matplotlib dan profil kecepatan seperti pada gambar kedua di atas, dapatkah saya mengimpornya ke Inkscape dan kemudian melakukan modifikasi pada mereka seperti 'skewing' dan memutar dari plot?
Dipole
@ Jack ya serta kemampuan untuk mengubah
warna
Bagus, saya akan mencobanya!
Dipole
2

Pertama: .PY + Matplotlib -> .SVG

Lalu, .SVG -> Inkskape

Namun, .SVG cukup mudah untuk dipelajari .PY -> .SVG

Anda juga bisa melakukan .PY + Matplotlib -> .PDF. Inkscape juga akan membukanya.

XOR
sumber
Terima kasih atas komentar Anda. Jadi saya bekerja dengan python dan menyimpannya sebagai file svg, lalu membukanya dengan Inkscape?
Dipole
1
Xor sementara Anda di ini, Anda mungkin membuat contoh atau harus I. +1 di anycase, python juga dapat langsung berbicara dengan inkscape tapi mungkin ini pertanyaan yang berbeda untuk ditanyakan?
joojaa
1

Penafian:

  1. Saya biasanya tidak memprogram dalam Python kecuali saya harus memperbaiki kode orang lain
  2. Saya tidak pernah menggunakan Matplotlib - ini adalah upaya pertama saya menggunakannya dan, karena terlihat menarik, HANYA alasan saya memposting jawaban ini.

Sekarang jawaban yang lebih kuat: (Bukannya saya menikmati mengerjakan pekerjaan rumah untuk kandidat PhD ...)

Semua yang ada di sini dicuri - dicuri habis-habisan - dari situs web matplotlib (lihat Contoh) dan dari Stack Overflow (matplotlib save ara trim gambar). Yang saya lakukan hanyalah menyalin / menempel dan mengujinya.

File out.svg yang dihasilkan dapat dibuka langsung di Inkscape. Gambar adalah Grup / Grup gambar yang lebih kecil. Klik pada bagian mana saja dari gambar, lalu gunakan opsi 'Ungroup' Inkscape. Anda mungkin harus mengelompokkan beberapa kali untuk dapat memanipulasi bagian gambar secara langsung.

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)
XOR
sumber