Saya mengalami kesulitan memodelkan cuaca. Pemodelan aspek tunggal sepele - beberapa pola sinusoidal + noise acak. Namun lebih dari 1 meniupkan pikiran saya. Saya tidak bisa memiliki angin, daun yang jatuh, hujan, dan salju semuanya menjadi acak. Tabrakan sederhana seperti hujan dan salju tidak boleh terjadi.
Selain itu, saya ingin level "intensitas" untuk masing-masing. Tapi ini bisa muncul setelah logika utama.
Cuaca disimpan di MySQL.
Semua saran Anda dipersilakan, tapi tolong jangan menyarankan melakukan ping kode pos dan menarik cuaca dari sana.
Memanfaatkan saran dari, sebenarnya, semua jawaban di bawah ini saya telah datang dengan distribusi tidak-skala ini :
Setiap fitur akan dihitung dengan noise acak, dan kombinasi dari 3 akan menghasilkan efek overlay.
(temp <0) dan (lembab> 65) => salju
sumber
Jawaban:
Bagaimana dengan membagi cuaca menjadi bagian yang lebih rinci?
Anda masih dapat menyimpan ini dalam kolom SQL tunggal jika Anda mau dengan membuatnya menjadi enum sederhana dengan 48 (4 * 4 * 3) nilai yang mungkin (menghapus konflik aneh yang tidak Anda sukai).
sumber
Kedengarannya seperti Model Markov Tersembunyi mungkin berguna bagi Anda. Ini mendefinisikan negara tertentu dengan probabilitas statistik transisi dari satu negara ke masing-masing negara lain berdasarkan frekuensi relatif dalam pengamatan.
Anda dapat menentukan beberapa keadaan cuaca misalnya 'hujan' dan 'cerah' dan probabilitas transisi dari hujan ke cerah dan cerah ke hujan dan menghitung misalnya kemungkinan bahwa itu akan segera hujan berdasarkan pengamatan Anda jika saat ini cerah atau hujan . The artikel Wikipedia menjelaskan ini, tetapi tutorial ini (PDF) menunjukkan pendekatan yang lebih praktis.
Jika Anda memodelkan banyak pola cuaca yang berbeda akan sulit untuk memodelkannya secara independen dengan pola ini, tetapi Anda dapat menentukan cuaca seperti 'FogRain' atau 'WindSnow' 'SunWind' 'Sun' misalnya dan memiliki probabilitas untuk masing-masing. Probabilitas ini bahkan dapat dimodifikasi berdasarkan bulan dalam game misalnya. Ada masalah kecil yang perlu diperhatikan meskipun ukuran matriks probabilitas Anda akan meningkat sebesar n ^ 2 saat Anda menambahkan lebih banyak jenis cuaca karena masing-masing harus memiliki probabilitas transisi (bahkan jika mereka nol) ke yang lain.
sumber
Pendeknya..
Saya akan memikirkan ini melalui sains.
Seperti kita ketahui, salju adalah hujan dan sebaliknya, kecuali mereka memiliki kondisi padat yang berbeda karena perubahan suhu.
Perubahan suhu dapat dikaitkan dengan angin.
Google cepat untuk "apa yang menyebabkan angin" memberi saya jawaban dari Answers.com:
Aye, bukan sumber terbaik untuk pertanyaan ilmiah, tetapi itu memberikan ide.
Jadi, secara teori, Anda hanya perlu angin sekarang. Itu bisa acak, atau, mungkin entah bagaimana dituliskan ke lingkungan Anda yang memanas karena beberapa peristiwa.
Ambillah angin sekarang, terapkan pada posisi Anda saat ini, dan secara acak atau melalui cara yang dituliskan, buatlah awan keluar darinya. Semakin tebal awan, semakin besar probabilitas dan kepadatan hujan. Jika suhu cukup rendah, hujan menjadi salju. Gerakkan awan di sekitarnya dan buat "tidak terlalu padat" dengan angin itu.
Adapun tampilan, itu terserah Anda, cukup cache kondisi partikel jatuh,
if rain -> use water drop texture
danif snow -> use snowflake texture
. Gunakan angin untuk membuat partikel-partikel ini bergerak sesuai arah angin (ya, Anda harus menyimpan yang ini juga, di suatu tempat) untuk membuatnya sedikit lebih realistis.Dan dengan ini Anda dapat memperluas segalanya. Seperti, jika ada salju yang jatuh dan butiran salju jatuh di dekat semacam sumber panas, ubah tekstur partikel menjadi hujan lagi.
Banyak kemungkinan sebenarnya, ini hanya konsep sederhana.
PS Adapun hujan es, lihat apa yang membuat mereka, memperluas konsep untuk lingkungan seperti itu.
Selamat bersenang-senang, semoga berhasil.
sumber