fizyka wzory prawa zadania teoria, chemia teoria zadania wzory, modelarstwo szkutnicze
przejscia1.jpg

Pobierz kod Płynne przejścia terenu
 
PŁYNNE PRZEJŚCIA TERENU

Będzie to najprostszy i zarazem najkrótszy temat związany z OMEGĄ. Na poniższym rysunku jest pokazany bardzo prosty efekt przejścia jednego kafla w drugi

przejscia1.jpg

Można zauważyć, że krawędzie kafli kostki brukowej rozmywają się na granicy z trawą. Jest to efekt bardzo prosty do uzyskania, jeżeli tylko podmieni się standardowa metodę rysowania TSprite …Kod programu zawiera dwie warstwy, drzewa jako warstwa trzecia są losowane. Kostka brukowa rysowana jest w warstwie drugiej, trawa w warstwie pierwszej. Oczywiście podejście można zmienić. Rysując wszystko w warstwie pierwszej a jedynie na granicach tereny zastosować podwójne rysowanie…

Jak uzyskać taki efekt?

Bardzo prosto

Należy skorzystać z tej metody rysowania Draw4Col i pobawić się kanałami ALPHA, czyli przeźroczystością narożników kafla. Kod procedury wykonującej to zadanie przedstawiam poniżej

procedure TKafel.Draw;
begin
if ImageIndex=-1 then exit;
Image.Draw4Col(
Round(X),Round(Y),
Round(X+Image.TileWidth),Round(Y),
Round(X+Image.TileWidth),Round(Y+Image.TileHeight),
Round(X),Round(Y+Image.TileHeight),
0,0,0,1,1,
OmegaColor(Red,Green,Blue,AlphaA),
OmegaColor(Red,Green,Blue,AlphaB),
OmegaColor(Red,Green,Blue,AlphaC),
OmegaColor(Red,Green,Blue,AlphaD),
ImageIndex,0);

end;

Jest to ta sama metoda- procedura rysująca, która szerzej opisałem w "Górach i Dolinach". Ten artykuł przedstawia inne jej zastosowanie. O płynnym przenikaniu kafli decydują wartości zapisane w zmiennych
AlphaA,AlphaB,…

Jak zmienić te wartości?

Proszę zerknąć na poniższy rysunek

przejscia2.jpg

Kafel (4,3) sąsiaduje w narożniku
-A z trzema kaflami zielonymi- powiedzmy trawa
-B z dwoma kaflami zielonymi i jednym niebieskim- powiedzmy woda
-C z trzema kaflami niebieskimi
-D z jednym niebieskim i dwoma zielonymi

Przyjmując teraz zasadę, że za każde sąsiedztwo rogu kafla (4,3)- woda z rogiem kafla tego samego typu zwiększamy stopień przezroczystości z wartości ZERO do jakiejś tam przyjętej w naszym modelu. Ja zwiększałem współczynnik Alpha o wartości 255 za każde sąsiedztwo a potem podzieliłem przez 3.
Poniżej odpowiedni fragment kodu

for Ri:=0 to high(testRogow[Rj]) do
begin
nx:=k+kierunek1[testRogow[Rj,Ri],0];
ny:=w+kierunek1[testRogow[Rj,Ri],1];
if (nx<0)or(ny<0)or(nx>MaxX)or(ny>MaxY) then continue;
if (AWarstwa[ny,nx].ImageIndex=AIDTest) then inc(Alpha,255);
end;
if AWarstwa[w,k].ImageIndex<>-1 then
case Rj of
//Rog A
0:AWarstwa[w,k].AlphaA:=Round(Alpha/3);
//Rog B
1:AWarstwa[w,k].AlphaB:=Round(Alpha/3);
//Rog C
2:AWarstwa[w,k].AlphaC:=Round(Alpha/3);
//Rog D
3:AWarstwa[w,k].AlphaD:=Round(Alpha/3);
end;

I to cała tajemnica tego efektu:) resztę Czytelniku znajdziesz w załączonym kodzie. Rysowanie odbywa się przez klikanie lewym klawiszem myszki.

 
Układ okresowy- kod qr
Układ okresowy

Układ okresowy pierwiastków- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Alkomat- wirtualny test kod qr
Alkomat- wirtualny test

Alkomat- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Światłomierz fotograficzny kod qr
Światłomierz fotograficzny

Światłomierz fotograficzny- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
Taklarz- olinowanie stałe kod qr
Olinowanie stałe- kalkulator średnic

Olinowanie stałe- darmowa aplikacja na Androida

Pobierz ze sklepu Google Play
przepis na gogfry

Przepis na gofry

zobacz
przepis na bitą śmietanę

Przepis na bitą śmietanę

zobacz