Funkcja losująca punkty


(Lukaszm Zdw) #1

Witam, Mam ogromną prośbę bo nie jestem pewn (wg mnie jest ok ale ale mogę się mylic) czy dobrze zapisałem w funkcji losującej punkty gdy jeden z boku kwadratu będzie miał np 0.2

void losuj_wzorce ()

  {

      //tutaj ciekawa funkcja, zajmuje sie losowaniem punktow w podanej wczesniej przez nas ilosci


      //1)

      //wyznaczamy progi losowania liczb

      float X1,X2,Y1,Y2;

      X1=kwadrat_X - (kwadrat_bok/2);

      X2=X1+kwadrat_bok;


      Y1=kwadrat_Y - (kwadrat_bok/2);

      Y2=Y1+kwadrat_bok;


      //zasieg to koncowa liczba przez jaka mnozymy rand() zeby uzyskac liczbe z ... odpowiedniego zasiegu

      float zasiegX,zasiegY;

      zasiegX=(X2-X1)+1;

      zasiegY=(Y2-Y1)+1;


      //losujemy ilosc punktow rowna tej podanej przez uzytkownika

        for (int i=0;i
        {

         // ciekawa sprawa , postaram sie to powoli opisac

         //przypisujemy kolejno do tablicy...

         //rand()/rand_max+1.0 daje nam liczbe z przedzialu <0;1>

         //jak to pomnozymy przez zasieg to mamy liczbe z przedzialu <0;zasieg>

         //jak do calosci dodamy X1 to mamy liczbe z przedzialu czyli to co potrzebujemy Smile

         tab_pktow[i+(i-1)]= X1+(zasiegX*rand()/(RAND_MAX + 1.0));

         tab_pktow[i*2]= Y1+(zasiegY*rand()/(RAND_MAX + 1.0));     

        }

  }

([alex]) #2

"funkcji losującej punkty gdy jeden z boku kwadratu będzie miał np 0.2" - co ma kwadrat do punktów?


(Lukaszm Zdw) #3

tutaj zamiesciłem caly kod: http://wklej.org/hash/cb9b5c5430/ może teraz będzie bardziej przejrzyście


([alex]) #4

tab_pktow[i+(i-1)]= kwadrat_X+kwadrat_bok*(rand()/RAND_MAX-0.5);

zmienne X1,X2 oraz zasiegX nie są potrzebne.

Analogicznie z Y.

Tak a propos klasa jest całkiem bezsensowna.


(Lukaszm Zdw) #5

hmm a masz może jakieś przykładowe dane do sprawdzenia bo mi dla danych

ilość klas 1

ilość punktów wzorcowych 100

X 0.3

Y 6

długość boku kwadratu 8

dostaję jakieś dziwne dane:


([alex]) #6

Sorka, przeoczyłem. Skonwertuj na fłoat wynik rand lub RAND_MAX.