private void GenerovanieSkaly(int pocetSkaly)
        {
            List <int[]> volnePozicie = VyberPozicii(pocetSkaly, NajdenieVhodnychPozicii(TypyObjektov.prazdnaZem));

            foreach (int[] pozicia in volnePozicie)
            {
                Skala skala = new Skala(pozicia[0], pozicia[1], true, true);
                mraveniskoTypyPolicok[pozicia[0], pozicia[1]] = skala;
                HlaskyCinnostiMravcovStavObjektov.SkalaVznikla(casExistencieMraveniska, skala.ZistiXSuradnicu(),
                                                               skala.ZistiYSuradnicu());
            }
        }
Example #2
0
        private Wektor fR;                                //wektor przesunięcia układu obserwatora;
                                                          //---------------------------------------------------------------------------
                                                          //	Konstruktor główny, inicjujący wszystkie parametry przekształcenia 3d
                                                          //  Trzy ostatnie paramtry (metryczny opis ekranu) nie są wymagane -
                                                          //  zostaną obliczone ze wymiarów pikselowych i  standardowej pozycji
                                                          //  komputerowca przed monitorem .
        public T3d(Punkt obs,                             //pozycja obserwatora
                   int xe0, int ye0, int eszer, int ewys, //okno ekranowe w pikselach
                   float odl_ekr  = 0,                    //typowa odległość oczu od monitora
                   float szer_ekr = 0, float wys_ekr = 0) //fizyczny opis ekranu w metrach
        {
            Punkt  centrum = new Punkt(0, 0, 0);          //tam patrzy obserwator
            Wektor pion    = new Wektor(0, 0, 1);         //pomocniczy wektor, orientujący obserwatora w 3d

            if (odl_ekr <= 0)
            {
                odl_ekr = 0.5f;
            }
            if (szer_ekr <= 0)                                //gdy nie określono rozmiarów ekranu
            {
                szer_ekr = (float)eszer * 0.0257f / 96.0f;    //0.0257 m = 1 cal. Ekran ma 96 pikseli/cal
            }
            if (wys_ekr <= 0)
            {
                wys_ekr = (float)ewys * 0.0257f / 96.0f;
            }

            s = new Skala(xe0, ye0, eszer, ewys, 0, 0, szer_ekr, wys_ekr);

            Wektor w3 = new Wektor(obs, centrum);          //lokalny wektor z obserwatora (wkazujący środek układu)

            w3.unormuj();

            Wektor w1 = new Wektor();

            w1 = (pion ^ w3);                               //lokalny wektor osi x' obserwatora
            w1.unormuj();

            Wektor w2 = new Wektor();

            w2 = (w3 ^ w1);                                //lokalny wektor osi y' obserwatora
            w1 = -w1;                                      //lewoskrętność układu obserwatora

            M = new Macierz(w1, w2, w3);                   //macierz przekształcenia

            fodl_ekr = odl_ekr;                            //parametry potrzebne innym funkcjom
            fR       = new Wektor(obs, new Punkt());       //tyle dystansu dzieli układy odniesienia
        }