Example #1
0
        //---------------------------------------------------------------------------
        //	Wylicz współrzędne punktu z przestrzeni 3d,
        //  najpierw transformując go do układu obserwatora,
        //  potem znajdując jego obraz na ekranie rzeczywistym (metrycznym)
        //  i w końcu przeskalowując ów obraz metryczny w pikselowy
        public bool punkt_3d(out int xe, out int ye, Punkt p)
        {
            Punkt nowy = new Punkt();                    //punkt w układzie obserwatora

            nowy = p + fR;                               //przesunięcie współrzędnych do ukł. obserwatora
            nowy = M * nowy;                             //obrót

            if (nowy.z == 0)
            {
                xe = ye = 0;                            //out: musi byc wpisanie
                return(false);
            }

            xe = s.daj_ekr_x(nowy.x * fodl_ekr / nowy.z);
            ye = s.daj_ekr_y(nowy.y * fodl_ekr / nowy.z);
            // xe = s -> daj_ekr_x( atan( nowy.x / nowy.z) * fodl_ekr); //sferyczny ekran (np. siatkówka oka)
            // ye = s -> daj_ekr_y( atan( nowy.y / nowy.z) * fodl_ekr);
            return(true);
        }