January 2009

Uwaga! Informacje na tej stronie mają ponad 3 lata. Nadal je udostępniam, ale prawdopodobnie nie odzwierciedlają one mojej aktualnej wiedzy ani przekonań.

22:31
Fri
30
Jan 2009

Skąd brać ikonki?

MarekM25 poruszył ostatnio na naszym forum ciekawy temat: Skąd brać ikonki na przyciski do swoich programów?. Pośród odpowiedzi znalazły się darmowe galerie ładnych ikon: Silk Icons, Tango Icon Gallery, a także nie lada niespodzianka - paczka ikon dołączana do Visual Studio (niestety nie w wersji Express), schowana głęboko i spakowana w pliku VS2008ImageLibrary.zip.

VS2008ImageLibrary.zip

Przy okazji warto wspomnieć o stronie Ajaxload, na której można sobie wygenerować i ściągnąć animowane, obracające się kółeczko popularne ostatnio do oznaczania ładowania czegoś w tle. Znacie jeszcze inne tego typu zasoby?

Ajaxload

Comments (1) | Tags: web gui graphics | Author: Adam Sawicki | Share

21:24
Wed
21
Jan 2009

Pasek przełączania stron w PHP

Tym razem, nietypowo, napiszę o programowaniu stron WWW w PHP, a konkretnie o kwestii przełączania między stronami. Jeśli lista zarejestrowanych użytkowników, dodanych projektów, newsów czy czegokolwiek jest długa, istnieją różne rozwiązania na jej pokazywanie. Pierwsza to pokazać wszytkie (jak lista Parties na pouet.net). Druga to pokazać wszystkie na wybraną literę (jak lista Groups na pouet.net). Ta najczęściej stosowana to grupować obiekty po kilka na stronie i dać możliwość przełączania się między numerami stron.

Z kolei wybór strony też można pokazywać na różne sposoby. Można wstawić formularz z kontrolką <select>, czyli ComboBox. Można pokazać listę numerów stron. Jeśli jednak sama ta lista jest długa, warto ją skrócić. Tu właśnie, kończąc ten wstęp, chciałbym zaprezentować kawałek kodu PHP, który ostatnio napisałem. Wprowadziłem go do swojej strony domowej oraz na www.gamedev.pl. Wzorem SMF (używanego na naszym forum.gamedev.pl) pokazuje tylko numer strony bieżącej, pierwszej, ostatniej, dwóch poprzednich, dwóch następnych oraz dodatkowe strzałeczki do następnej i poprzedniej. Oto kod: Pasek_stron_PHP.txt. Tak to wygląda:

Pasek przełączania stron w PHP

Comments (1) | Tags: php webdev web gui | Author: Adam Sawicki | Share

16:42
Wed
14
Jan 2009

Funkcja liniowa i kwadratowa

W programowaniu bardzo często stosuje się funkcję liniową lub kwadratową. Przykładowo, jeśli mgła ma się zaczynać w głębokości Min i kończyć w głębokości Max, to jej intensywość od głębokości można wyrazić prostym wzorem:

FogIntensity = saturate(Depth * FogScale + FogBias);

Problem w tym, żeby znaleźć współczynniki tej funkcji. Do tego przydają się wzory, które wyliczają współczynniki dla funkcji przechodzącej przez dane punkty. Potrafi to robić mój GameDev Calc, ale żeby policzyć je w swoim programie albo na kartce, warto mieć pod ręką te wzory.

Funkcja liniowa Funkcja liniowa przechodząca przez dwa punkty (x1, y1), (x2, y2) ma wzór:

Funkcja liniowa - współczynniki

Co w przełożeniu na kod daje:

float W = p2.x - p1.x;
if (W == 0.f) Error();
float a = (p2.y - p1.y) / W;
float b = (p2.x * p1.y - p2.y * p1.x) / W;

Z kolei funkcja kwadratowa Funkcja kwadratora przechodząca przez trzy punkty (x1, y1), (x2, y2), (x3, y3) ma wzór:

Funkcja kwadratowa - współczynniki

Co daje trochę dłuższy kod:

float x1 = p1.x, x2 = p2.x, x3 = p3.x;
float y1 = p1.y, y2 = p2.y, y3 = p3.y;
float W =
  x1 * x1 * x2 + x3 * x3 * x1 +
  x2 * x2 * x3 - x1 * x1 * x3 -
  x2 * x2 * x1 - x3 * x3 * x2;
if (W == 0.f) Error();
float a =
  y1 * x2 + y3 * x1 + y2 * x3 -
  y1 * x3 - y2 * x1 - y3 * x2;
float b =
  x1 * x1 * y2 + x3 * x3 * y1 +
  x2 * x2 * y3 - x1 * x1 * y3 -
  x2 * x2 * y1 - x3 * x3 * y2;
float c =
  x1 * x1 * x2 * y3 + x3 * x3 * x1 * y2 +
  x2 * x2 * x3 * y1 - x1 * x1 * x3 * y2 -
  x2 * x2 * x1 * y3 - x3 * x3 * x2 * y1;
a /= W;
b /= W;
c /= W;

Comments (1) | Tags: math | Author: Adam Sawicki | Share

23:42
Mon
12
Jan 2009

Co wynalazł Hilbert i Morton

Tablicę jednowymiarową można posortować, żeby przyspieszyć jej przeszukiwanie. W programowaniu gier, do przestrzeni 2D i 3D używamy technik podziału przestrzeni (jak BSP, Octree, k-d tree), bo nie sposób uporządkować punktów czy obiektów w kolejności. Jednak czy napewno?

Otóż wynaleziono funkcje, które przeliczają pozycję punktu w przestrzeni (podzielonej wprawdzie na dyskretną siatkę) na pojedynczą liczbę taką, że dwa punkty leżące blisko siebie dostają często zbliżoną wartość. Te funkcje to numer komórki wzdłuż pewnej krzywej (Space-filling curve).

Przykładem może być Morton value:

Morton value
Źródło: Wikipedia

lub lepsza, ale bardziej kosztowna obliczeniowo Hilbert value:

Hilbert value
Źródło: Wikipedia

Comments (0) | Tags: math algorithms rendering | Author: Adam Sawicki | Share

21:45
Sat
10
Jan 2009

Tagi do bloga i inne nowości

Ulepszyłem ostatnio skrypty mojej strony. Między innymi dodałem tagi do mojego bloga i zatagowałem niektóre wpisy. Oto lista tagów. Napisałem też z pomocą JavaScript fajniejsze drzewko ze statystykami odwiedzin.

Comments (0) | Tags: homepage web | Author: Adam Sawicki | Share

22:02
Sat
03
Jan 2009

TPSA zablokowała IRC

Około nowego roku firma TPSA całkowicie zablokowała swoim abonentom dostęp do niektórych adresów IP, w tym do serwerów IRC sieci IrcNet i PolNet, a także m.in. strony gimp.org. Firma tłumaczy, że IRC wykorzystywany jest do sterowania hakerskimi botami. Ja nie wiem o co chodzi z tymi botami - nie zajmuję się hakowaniem - ale wiem, że wiele osób używa IRC-a do normalnego rozmawiania. Dlatego moim zdaniem to skandal, że popularny dostawca usług internetowych, który w umowie gwarantuje "nieograniczony" dostęp do globalnej Sieci, blokuje swoim abonentom jedną z usług. Co będzie dalej? Zablokują Torrenta jako że często służy do piractwa, zapominając o tych co za jego pomocą ściagają dystrybucje Linuksa albo patche do WoW? Do poczytania:

W tej sytuacji niewielkim pocieszeniem jest fakt, że za przedłużenie Neostrady na co najmniej 24 miesiące można dostać drukarkę atramentową Canon Pixma iP1900.

Drukarka atramentowa Canon Pixma iP1900 od TPSA (Neostrada)

Comments (1) | Tags: web politics | Author: Adam Sawicki | Share

STAT NO AD [Stat] [Admin] [STAT NO AD] [pub] [Mirror] Copyright © 2004-2017 Adam Sawicki
Copyright © 2004-2017 Adam Sawicki