Jak zmniejszyć losowe wypełnianie okręgu

Wielokąty (n>3). Okręgi. Inne figury płaskie. Zadania i twierdzenia z nimi związane. Geometria rzutowa na płaszczyżnie.
snajper_44
Użytkownik
Użytkownik
Posty: 4
Rejestracja: 11 paź 2010, o 19:45
Płeć: Mężczyzna
Lokalizacja: Skc

Jak zmniejszyć losowe wypełnianie okręgu

Post autor: snajper_44 »

Witam! To mój I post na forum, więc proszę o wyrozumiałość. Mianowicie, mam pytanko. Tworzę aplikację do rysowania/edycji bitmap. Zrobiłem aerograf (spray) z funkcji Canvas.Pixels. Całą funkcję zamieszczam. Nie chodzi mi tu też o programowanie jedynie bardziej o matematykę, więc opiszę problem dla nie-programistów Problem polega na tym, że ten właśnie spray (funkcję zaczerpnąłem z internetu
i przerobiłem) działa, lecz chciałbym dodać funkcję "miękkości" czyli z jaką "siłą" ma pracować. Ale nie mogę sobie poradzić ze wzorem tym, który jest w ...Canvas.Pixels[właśnie to]. Jak go przerobić aby spray był np. to znaczy żeby pixele rzadziej się "rysowały". Widzę tu jakieś wzory chyba na koło czy coś i to jakby koło jest zapełniane owymi pixelami. Komentarze za znakami // i poczyłą czcionką

procedure Spray(Canvas: TCanvas; X, Y, r: Integer; clr: TColor); // deklaracja procedury
var // zapisanie, że będa zmienne wariantowe
rad, a: Single; // zmienna 'rad' i 'a' jako liczby rzeczywiste (zakres: 1.5 x 10^-45 .. 3.4 x 10^38)
i: Integer; // zmienna 'i' jako liczba całkowita (zakres: 1.5 x 10^-45 .. 3.4 x 10^38)
begin // pocztątek procedury
for i := 0 to 100 do // dla i=0 do 100 zrób.. niżej
begin // początek
a := Random * 2 * pi; // a=losowa*2*PI
rad := Random * r; // rad=losowa*r [r to promień?]
frmPicture.img.Canvas.Pixels[X + Round(rad * Cos(a)), Y + Round(rad * Sin(a))] := clr; // ta funkcja, od frm... do ...Pixels nieważne, reszta kodu nie wiem o co chodzi, HELP
end; // koniec procedury
end; // koniec procedury

Od razu mówie post długi Cos - programowy oznaczający chyba Cosinus i Sin to samo. Round znaczy zaokrąglij do całości. Cos(a) znaczy Cosinus z 'a' czy jakto się tam mówi. Acha, to ':= clr' to nie wiem co to, znaczy to color ale nie wiem dlaczego on tu jest. X, Y to nic innego jak współrzędne myszy. Za wszelkie błędy przepraszam i przepraszam ,że się ta tym nie znam, ponieważ mam dopiero 15 lat(3 kl. gim. ) Proszę o pomoc w rozwiązaniu problemu.
ODPOWIEDZ