January 2009

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

# Skąd brać ikonki?

22:31
Fri
30
Jan 2009

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 | #web #gui #graphics Share

# Pasek przełączania stron w PHP

21:24
Wed
21
Jan 2009

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 | #php #webdev #web #gui Share

# Funkcja liniowa i kwadratowa

16:42
Wed
14
Jan 2009

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 | #math Share

# Co wynalazł Hilbert i Morton

23:42
Mon
12
Jan 2009

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 | #math #algorithms #rendering Share

# Tagi do bloga i inne nowości

21:45
Sat
10
Jan 2009

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 | #homepage #web Share

# TPSA zablokowała IRC

22:02
Sat
03
Jan 2009

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 | #web #politics Share

STAT NO AD
[Stat] [STAT NO AD] [Download] [Dropbox] [pub] [Mirror]
Copyright © 2004-2017