//--------------------------------------------------------------------------- // 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); }