W artykule Dodawanie z nasyceniem poprawiłem metodę nr 3 (MMX) dodawania pikseli 16-bitowych — wyleciały 4 nadmiarowe instrukcje (dwie błędne, dwie niepotrzebne).
Jest też dostępny przykładowy program zawierający metody pierwszą (x86) i trzecią (MMX). Program możne działać albo wsadowo i wówczas wykonuje wybraną procedurę n razy (profilowanie, pomiar wydajności) albo interaktywnie — ładuje wskazany obrazek PPM, wyświetla w oknie (X Window) i wykonuje dodawanie z nasyceniem. Dokładny opis kompilacji i wymagań znajduje się na innej stronie.
Liczący sobie już 5 lat artykuł Operacje na łańcuchach ASCII-Z w asemblerze został odświeżony i została dodana funkcja strchr.
Przy okazji... właściwie to „odświeżenie” było przy okazji, pojawiły się procedury przeznaczone dla GCC (inline asm): mmx_string.c.
ttyscreenshot — do zrzucania zawartości konsoli linuksowej do pliku graficznego PNM; uwzględniane są bieżące kolory i załadowane fonty. Wymaga wyższych uprawień, przynajmniej możliwości odczytu /dev/vcsa* i /dev/tty* (i pewnie czegoś jeszcze...).
Przykład — zawartość konsoli na której program fbi_text modyfikuje fonty, aby przedstawić obrazek; ze zrzutów zostało wycięte czarne tło.
Zrzut konsoli po lewej: znaki na konsoli mają szerokość 9 pikseli (standardowo na kartach EGA/VGA — wyraźnie widać zakłócenia na wyświetlanym przez fbi_text obrazku). Zrzut konsoli po prawej: znaki o szerokości 8 pikseli (niestandardowe ustawienia, możliwość zmiany tylko z poziomu konta root; jak widać obrazek jest już przedstawiony bez zakłóceń).
Jako suplement do artykułu Punkt wewnątrz wielokąta pojawiło się demo pokazujące w jaki sposób, po opisaniu wielokąta za pomocą drzew BSP, można klasyfikować punkty, tj. stwierdzać, czy leżą wewnątrz/na zewnątrz wielokąta.
Dopisałem jeszcze programiki demonstracyjne do algorytmów LZ77 i LZSS. Ale tych akurat nie umieszczę na Wikipedii, ponieważ są nieczytelne (i na dodatek koszmarnie wolne).
Źródła:
Użycie: python LZ78.py/LZW.py nazwa_pliku — na wyjściu pojawią się statystyki.
Różnica między LZxx.py, a LZxx-2.py to zakres w jakim wyszukiwane są najdłuższe prefiksy bufora wejściowego. W pierwszym wariancie („klasycznym”) przeszukiwany jest słownik + bufor wejściowy, w drugim przeszukiwany jest wyłącznie słownik — co upraszcza dekoder i jak na Wikipedii napisano: przy rozmiarach słownika dużo większych niż bufora wejściowego nie rzutuje to znacząco na stopień kompresji. (Moje eksperymenty wskazują, że te różnice przy słowniku o rozmiarze 8kB są rzędu 0.1-0.2 punktu procentowego).
Przy okazji rozszerzenia hasła LZW na Wikipedii napisałem prosty programik demonstrujący samą ideę kodowania i dekodowania LZW. Jako że od LZW do LZ78 jest rzut beretem.... yyy, bardzo mało zmian w kodzie było potrzebnych, przeto w haśle LZ78 również pojawił się programik demonstracyjny.
Źródła udostępniam również tutaj:
Użycie python LZ78.py/LZW.py nazwa_pliku — na wyjściu pojawią się statystyki.
Tkinterowe demo automatycznego rysowania drzew — program pozwala na interaktywną edycję drzewa (dodawanie węzłów, usuwanie poddrzew), a także zmianę podpisu węzła oraz jego koloru i kształtu: prostokąt, koło, prostokąt z zaokrąglonymi rogami (wykonanie tego ostatniego w Tkinterze jest niespecjalnie łatwe).
Szczegóły na stronie Automatyczne rysowanie drzew
Przy okazji napisałem minimalistyczną paletkę 16 HTML-owych kolorów tkcolorpicker.py — może się przydać również w innych projektach. (Tak, wiem że jest tkColorChooser ale nie odpowiadało mi).
- Algorytm Grahama (wyszukiwanie otoczki wypukłej zbioru punktów):
Starsze: 2006, 2005, 2004, 2003
Dokument utworzony przez rozszerzony rst2html.