Tutaj jest dynamiczny BBC graphics. Myślę, że możliwe jest odtworzenie grafiki w Mathematica.Jak ten dynamiczny wykres jest możliwy z matematyką?
W procesie odpowiadając ujrzymy kilka uroczych sztuczek graficznych dostępnych w MMA. To jedyny powód, by zadać to pytanie tutaj.
Aktualizacja:
Właśnie sprawdziłem, że BBC jest za pomocą prostego JavaScript, aby to zrobić. Ręcznie wykonali statyczne obrazy, a nawet nie korzystali z obsługi zdarzeń opartych na technologii Flash. Wszystkie zdjęcia są więc statycznymi obiektami i po kliknięciu jednego kraju generowany jest unikalny obraz. W przypadku innych krajów pokazuje inne obrazy. Oddzielne obrazy dla każdego przypadku można wygenerować za pomocą PowerPoint, Visio, a nawet Photoshop. Można to sprawdzić, wyłączając JavaScript w przeglądarce i ponownie ładując stronę.
Rozumiem, że te pojedyncze zdjęcia można wykonać z MMA. Niektóre odpowiedzi pokazują właściwy kierunek, w jaki można to zrobić. Akceptuję więc najlepszą odpowiedź, jaka doszła do tej pory.
Większość elementów można łatwo znaleźć w Mathematica. Możesz mieć 'Strzałki', na przykład oparte na' BezierCurve's lub 'BSplineCurve's. Klikalne nazwy mogą być zaimplementowane jako 'Button' z' Wyglądem -> "Bezramkowym" '. Reszta to po prostu praca. Być może zmienna grubość strzałek na grafice może być trudna do odtworzenia. Może być konieczne powstrzymanie się od używania 'Strzałki' i zbudowanie ich z bardziej podstawowych prymitywów do rysowania. Co spróbowałeś, zanim zadałeś to pytanie? –
@ SjoerdC.deVries Nie próbowałem dotąd. Właśnie przeczytałem wiadomości w BBC i pomyślałem, że to będzie dobry problem dla lekcji praktyki MMA. Spróbuję to zrobić, ale chcę, żeby inni też się przyjrzeli. Zwłaszcza te minizje nudzące się w mglisty sobotni poranek. – PlatoManiac
Myślę, że chociaż wymaga to dużo pracy, nie jest to zbyt trudne zadanie. Będziesz musiał owijać obiekty graficzne w 'EventHandler', robić kliknięcia, modyfikować niektóre zmienne i umieszczać całą' Grafikę' w 'Dynamic', aby była aktualizowana po zmianie tych zmiennych. 'HighlightGraph' jest dobre dla uproszczonego rozwiązania.Wykonaj ukierunkowany wykres 'g', a następnie wykonaj' SetterBar [Dynamiczny [kolor], {Czerwony, Zielony, Niebieski}] ', Dynamic @ HighlightGraph [g, {Styl [1 \ [DirectedEdge] 2, kolor]}]' – Szabolcs