2010-08-30 9 views
5

Günün ve günün saatine bağlı olarak, Dünya'yı güneşin etrafında gezerken gösteren, tarayıcı tabanlı, etkileşimli, gerçek zamanlı bir animasyon oluşturmak istiyorum. Bu animasyon aynı zamanda (nihayetinde) güneş sistemindeki diğer gezegenleri de göstermeli ve kullanıcı güneş sistemi etrafında dönmeli ve farklı yönlerden görebilmelidir (tıklama-sürükleme, kaydırma vb. Ile).Bu yüzden, Dünya'nın ve Güneş'in etrafındaki diğer gezegenlerin tarayıcı tabanlı etkileşimli gerçek zamanlı animasyonu oluşturmak istiyorum ... nereden başlarım?

Gerçekten pratik bir uygulama olduğunu düşünmüyorum, ama evrendeki sanatsal değeri beğendim ... bu yüzden bunu yapmaya başlamak ilginç olurdu ve muhtemelen bunu yaparken birkaç şey öğreneceğim. .

Gezegen fiziği ile ilgili herhangi bir deneyimim yok, ancak iyi bir bilgi kaynağı varsa bunu anlayabiliyordum. JavaScript, HTML, CSS, Python gibi dillerle web geliştirme konusunda biraz deneyimim var.

Şimdi, soru: En önemlisi

  • , nasıl bunun gibi bir proje başlayacaktı?

  • Dünya'nın rotasyonunu ve güneş sistemindeki diğer gezegenleri nereden bulabilirim?

  • Hangi dilleri kullanmalıyım/öğrenmeliyim? Bu fikir hakkında hakkında başka düşünceleriniz nelerdir? Bu 'un, bu gibi bir projesi için ne gibi bir işlevsel olacağını düşünüyorsunuz?

pencereden dışarı bakarak ve koyulaşıyor alma binalar görüyorum gibi bu fikri çok dürtü özellikle gün ... bu geç saatte, tahrik edilmektedir, ben de nasıl hayal ediyorum Dünya yavaş yavaş kendi etrafında ve aynı zamanda Güneş etrafında dönüyor ve bunu dışarıdan bakıldığında görebilmek için çok güzel bir manzara olacağını düşünüyorum.

Bazı görüşlerinizi almayı umuyoruz. Şerefe! bir soru için bir çok soru var

+0

Cevap yok diye bir soru değil. Kullanıcı, geliştirilmekte olan gerçek bir çalışma sorununu çözmek gibi belirli bir sebepten bile istemez. Benden daha yüksek izni olan birisi lütfen onu kapatın. – PurplePilot

+6

@Purple, "gerçek dünyaya uygulanabilirlik" sahibi olmak için geçerli SO soruları için bir kriter değildir. Yeterince adil, soru oldukça belirsiz ve tek bir kesin cevabı yok. Yine de, IMHO bu kendi içinde onu kapatmak için bir gerekçe değildir. [Let's be nice: -)] (http://stackoverflow.com/faq) –

+2

iyi, Astronomi StackExchange sitesi için bir teklif var, bu yüzden o başlattığınızda sorun etki alanı ile mücadele edebilir. Nasıl yapılabileceğine gelince, Stellarium'a göz atın: http://www.stellarium.org/ - (açık kaynak) – Piskvor

cevap

3

Harika bir proje gibi görünüyor! Ben çalışmak için ilham olurdu tür (ve nadiren bitirmek ;-).

Bkz. this related question on graphical frameworks for browsers.

Buradan başlayacağım, seyirciniz nedir? Örneğin. çoğu internet kullanıcısı ve en büyük tarayıcılar?

Tercihim O3D (WebGL tabanlı) kullanmaktır, ancak bu sizin sanat çalışmalarınızın yalnızca kanama tarayıcılarında çalıştığını ve IE'de bulunmadığını düşünmemenizi gerektirir. Programlama, JavaScript’te yapılacaktır. Ancak zorlu olurdu. Bir sonraki sorum, sabahın soğuk ışığında, bu proje hakkında önemli zaman dilleri ve grafik kütüphaneleri yatırımına yeterince ilham verdim mi?

Başka bir soru, bunu 3D olarak yapmak mı istiyorsunuz? Kulağa öyle geliyor, ama güneş sisteminin 2 boyutlu sunumunda da estetik bir değer var, bu yüzden sormaya değer.

Programlama veya 3D grafiklerde daha önce deneyimli değilseniz, Processing'u düşünebilirsiniz. Programcılar yerine sanatçılara yöneliktir ve tarayıcılarda çalıştırmaya yönelik uygulamaları vardır.

Gezegenler için temel olarak en azından başlamak üzere dokulu küreler yapacaksınız; WebGL için this tutorial veya O3D için these samples'a bakın.

Ayrıca, açık kaynaklı güneş sistemi simülasyon projeleri için bir araştırma yapın ... bunlardan bol miktarda vardır ve matematik algoritmalarını çalabilirsiniz. :-)

+0

Wow..thanks. İyi cevap. Kesinlikle bakabileceğim bir sürü şey var ve bu bir akşam projesi olmakla ilgili söylediklerimi alıyorum ama sabahları farklı şeyler olabilir. Şu anda bir kaç projem var, ama böyle bir şey yapmak için biraz zaman harcadım, bu yüzden bu konuda çalışmaya başlayacağım ilk şansı tahmin ediyorum. o. Ayrıca, 2D gösterimde estetik değerden ne demek istiyorsun? Güneş sisteminin bir çeşit üst görünümüne mi atıf yapıyorsunuz? İlk düşüncem 3D idi. Bu fikri genişletebilir misin? – Andrei

+0

@Andrei - evet, 2D ile yukarıdan aşağıya inmek istedim. Http://janus.astro.umd.edu/javadir/orbits/ssv.html gibi bir şey olsa da, estetik odaklı değil. Başka bir değerlendirme ölçeğidir. Bütün SS'yi görmek için uzaklaşırsanız, herhangi bir gezegende neredeyse hiçbir detay olmayacak ... aylar ya da doku yok. Göstermek istediğiniz şeyi düşünün. Bir seçenek, bir gezegene bir seferde yaklaşarak SS'den yakınlaşan bir uzay aracından görünümü göstermektir. – LarsH

2

;) neyse

, İlk önce bazı planlama yaparım: alt görevler içine büyük bir görev bölmek (örneğin gök mekaniği ("nasıl gezegenler taşırım" - see e.g. here), Bunu kod içinde temsil ederek 'u'u 3B'de, tekstüre ve gölgelendirme, animasyonda? oluşturma ve bunlar üzerinde araştırma/çalışma yapmaya başladığınızda, sorunla karşılaştığınızda buradan tekrar kontrol edin. Dil önemli değil, gerçekten - 3D sahneleri işlemenize olanak tanıyan her şey yapacaktır.

Belki de projenize Stellarium adapte olabilirsiniz - her şeyden önce, bazı yönlerden uzayda bir noktadan görünüm sağlar. Bunun amacı diğer yoldur - Dünya'nın dışından 'a bakarken, ancak bir kod çatalının uygun olabileceğini söyleyebilirim.

2

Bunu yapacak olsaydım, bir şeyler çizmek için Javascript canvas öğesinin nasıl kullanılacağını öğrenerek işe başlarım. Gezegen pozisyonları için ekranda bazı daireler/elipsler çizmek için bir kod yazın. Sonra biraz animasyon ekleyin. Son olarak, tüm gök mekaniği hesaplamalarını Javascript'te nasıl yapacağımı anladım.

Diğerleri gök mekaniği ile başlayabilir ve grafikleri daha sonra bulabilir. Sadece "ilginç" bulup hangi parçayı seçtiğini seçin.

+0

Mükemmel, açık cevap için teşekkürler. Bu yüzden, JS kanvasının 3D render için uygun olacağını anladım. – Andrei

+0

Veya, 3D render perspektif noktanıza bağlı olarak sadece 2D görüntüler gösteriyor. – Andrei

+1

3B oluşturma için 3 boyutlu bir çerçeve kullanmayı denediğinizden, 3B oluşturma için bir çerçeveniz varsa, 3D render * * daha kolay olacaktır. Pek çok tekerleği yeniden icat etmek istemiyorsan. Bu yüzden O3D/WebGL'yi tavsiye ederim (cevabıma bakın). – LarsH

İlgili konular