Robię własną planetę

Niektórzy latają w kosmos, a ty co? A ja nic, ja tylko robię własną planetę. W Three.js

Tylko nie mówcie, że wygląda jak wirus. Bo to jest planeta planetowa.

No i wygląda prosto, ale musiałem się namęczyć z tym, żeby dało się po kliknięciu rysować te sześciany i rurki w taki sposób, żeby były obrócone zgodnie z powierzchnią kuli. I próbowałem na różne sposoby, a to kombinowałem, żeby brać normalne, dodać do pozycji i wywołać metodę lookAt, ale to jakoś nie działało w każdej sytuacji, czasem kąty były dziwne. Próbowałem też korzystać z obiektów THREE.Spherical, z kwaternionów, czego ja nie próbowałem. Kombinowałem też, jak wydobyć styczną do powierzchni.

W końcu nastąpił u mnie paradigm shift. I zamiast rozglądać się na to, co widać gołym okiem, na samą powierzchnię kuli, postanowiłem zajrzeć do samego środka. Bo każda kula ma środek. I zrobiłem tak, że obiekty "patrzą" na środek kuli (mesh.lookAt(0, 0, 0) zakładając, że środek kuli jest w pozycji (0, 0, 0)

I oto jestem. Ale to dopiero początek. Robienie własnej planety to długofalowe zadanie. Nawet Elon Musk nie zrobiłiby tego w jeden dzień.

Swoją drogą teraz znalazłem na StackOverflow rozwiązanie podobne do mojego, choć w drugą stronę - zamiast sprawiać, żeby siatka "patrzyła" na środek kuli, to zróbmy pomocniczy obiekt umieszczony w środku kuli, który będzie obrócony (za pomocą lookAt) w kierunku siatki. I do tego pomocniczego obiektu dodamy siatkę (tak, że siatka będzie na takim niewidzialnym "kijku") będzie mogli obracać ten kijek. No ciekawe. Jak widać można różnie podchodzić do tematu.

Komentarze

Popularne posty z tego bloga

Ściemy z ogłoszeń o pracę

Jak nie sprawdzać wiedzy technicznej: platformy online

Jak zrobić prostą grę w JavaScript?