Istnieje alternatywna implementacja, oparta na przetwarzaniu obrazu tutaj . Niezbyt szybki, ale bardzo elastyczny i dobry do eksperymentów. (W Mathematica podano pełną implementację).
Wymyśliłem własny (dość prosty) algorytm i napisałem o nim na blogu . Jest napisany w Pythonie i powinien być łatwy do dostosowania. Starałem się uczynić go w połowie wydajnym. ! wprowadź opis zdjęcia tutaj
Jestem twórcą Wordle. Oto, jak faktycznie działa Wordle:
Policz słowa, wyrzucaj nudne słowa i sortuj według liczby, malejąco. Zachowaj górne N słów dla niektórych N. Przypisuj każdemu słowu rozmiar czcionki proporcjonalny do jego liczby. Wygeneruj kształt Java2D dla każdego słowa, używając interfejsu API Java2D.
Każde słowo „chce” być gdzieś, na przykład „w jakiejś losowej pozycji x w pionowym środku”. W malejącej kolejności częstotliwości zrób to dla każdego słowa:
place the word where it wants to be
while it intersects any of the previously placed words
move it one step along an ever-increasing spiral
Otóż to. Trudno jest to robić w skrzyżowanie badanie sprawnie, dla których używam last hit buforowanie, hierarchicznych obwiednie i QuadTree przestrzennej indeksu (z których wszystkie są rzeczy można dowiedzieć się więcej na temat z pewnym pracowitych googlowania).
Edycja: Jak zauważył Reto Aebersold, jest teraz dostępny bezpłatnie rozdział książki, który obejmuje ten sam obszar: Piękna wizualizacja, Rozdział 3: Wordle
Bardzo łatwo jest po prostu skopiować pliki src = ".js" i ponownie załadować je w celu zbudowania lub użycia w takiej postaci, w jakiej są. Dziękujemy za udostępnienie i działa świetnie!
Oto responsywny przykład działania oparty na wersji demonstracyjnej, ale z pełną kontrolą słów i kolorów. W przypadku niestandardowej palety kolorów użyj zamiast tego skomentowanego kodu. jsbin.com/kiwojayoye/1/edit?html,js,output
Zaimplementowałem algorytm opisany przez Jonathana Feinberga, używając Pythona do utworzenia chmury tagów. Jest daleko od pięknych chmur wordle.net, ale daje wyobrażenie o tym, jak można to zrobić.
Stworzyłem komponent Silverlight, który wykorzystuje algorytm sugerowany przez Jonathana tutaj. Kod źródłowy i przykładowe projekty są dostępne na moim blogu:
Moja chmura pozwala pokolorować i rozmiar słów w oparciu o różne wagi i obsługuje wybór słów (ze współrzędnych) i zaznaczanie wybranych słów. Możesz użyć źródła, które uważasz za stosowne.
Pracuję nad WordCram , biblioteką przetwarzania do tworzenia chmur słów. Wordle ma na to duży wpływ i informuje o tym ten sam plik PDF, do którego prowadzi link powyżej. Obsługuje wykrywanie kolizji i pozwala skupić się na tym, jak chcesz ułożyć, pokolorować, obrócić itp.
Szukałem podobnej do słów wizualizacji, która pozwoliłaby przypisać kolor, początkową pozycję i rozmiar ciągu związanego z innymi danymi, takimi jak trafność w tekście - niczego nie znalazłem, ale dzięki informacjom, które znalazłem tutaj (Zwłaszcza wyjaśnienie Jonathana i link Aeby'ego), mogłem w końcu wdrożyć „ Cloudio ”, które jest względnie bliskie słowu (przynajmniej tak mi się wydaje ...) i oferuje funkcje, których szukałem.
Jest zaimplementowany z SWT i JFace, a ja próbowałem zintegrować go z modelem MVC JFace, tak aby można było ustawić dostawców treści i etykiet w celu zmodyfikowania układu chmury i dodania go do innych wtyczek Eclipse lub RCP aplikacje. Możesz także zmodyfikować sposób obliczania początkowej pozycji łańcucha, tak aby nie było trudno użyć go do wizualizacji klastrów lub w inny sposób. Nadal jest słabo udokumentowany i pod pewnymi względami ograniczony (a ja zrobiłem wstępne przesyłanie kilka godzin temu, więc nadal może być trochę wadliwy), ale jeśli jesteś zainteresowany, oto link:
Lion and Lamb to aplikacja na system iOS typu open source, która tworzy chmury słów przy użyciu najczęstszych słów z wybranej księgi Biblii.
Opiera się na algorytmie opisanym przez Jonathana Feinberga. Testowanie trafień wykorzystuje drzewo quadów, ale ramki ograniczające są oparte na prostokącie ograniczającym glifu. Chcę rozbić glif na wiele mniejszych prostokątów ograniczających, aby umożliwić umieszczanie słów w obwiedni glifów.
Stworzyłem go, ponieważ w innych generatorach chmur nie możesz klikać znaczników, aby nawigować, i nie możesz tworzyć animacji najechania kursorem, aby pokazać, że można je kliknąć. Ponieważ wyświetlanie animacji aktywowania w HTML jest dla mnie konieczne (robię to z nakładanymi, absolutnie pozycjonowanymi <a>znacznikami), nie opracowałem wyświetlania słów pod dowolnym kątem - są one pionowe lub poziome.
Ostrzeżenie: powyższe linki mogą utracić ważność za kilka miesięcy, planuję powoli rozwiązać je z otaczającego projektu do osobnego projektu.
Możesz zobaczyć działające demo na tym przykładowym poście na blogu , ale jest ono niekompletne i na niekompletnej stronie. Skontaktuj się ze mną, jeśli ktoś chce wnieść swój wkład, zajmę się oddzieleniem go jak najszybciej.
Oto kolejna kompleksowa implementacja wordle w Pythonie 3, w dużej mierze oparta na wstępnym zarysie Jonathana Feinberga (QuadTrees, spirale itp.).
Kod (skomentowany, ze szczegółowym plikiem ReadMe) jest swobodnie dostępny w tym repozytorium Github i jest to przykładowe słowo utworzone za pomocą kodu.
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.