public static Vektor gravitacna_sila(Teleso a, Teleso b) { Vektor r = Vektor.odcitaj_vektor(a.pozicia, b.pozicia); Vektor r_jednotkovy = Vektor.vydel_skalarom(r, Vektor.velkost_vektora(r)); double grav_sila_velkost = G * a.hmotnost * b.hmotnost / Math.Pow(Vektor.velkost_vektora(r), 2); //Console.WriteLine("jednotkovy vektor: " + r_jednotkovy.x.ToString() + " " + r_jednotkovy.y.ToString()); //Console.WriteLine("gravitacna sila: " + Vektor.vynasob_skalarom(r_jednotkovy, grav_sila_velkost).x.ToString()+" " + Vektor.vynasob_skalarom(r_jednotkovy, grav_sila_velkost).y.ToString()); return(Vektor.vynasob_skalarom(r_jednotkovy, -grav_sila_velkost)); }
//prenasobi skutocne hodnoty konstantou public void preskaluj(Sustava sus) { for (int i = 0; i < pozicie_pix_zakl.Length; i++) { pozicie_pix_zakl[i] = Vektor.vynasob_skalarom(sus.objekty[i].pozicia, k); pozicie_pix_zakl[i].x = Math.Round(pozicie_pix_zakl[i].x); pozicie_pix_zakl[i].y = Math.Round(pozicie_pix_zakl[i].y); } }
public void nastav_pociatocny_stav() { objekty[0].pozicia = new Vektor(0, 0); for (int i = 1; i < objekty.Length; i++) { objekty[i].pozicia = objekty[i].pociatocna_pozicia; objekty[i].sila = new Vektor(0, 0); objekty[i].hybnost = Vektor.vynasob_skalarom(new Vektor(0, -1), objekty[i].hmotnost * objekty[i].zisti_init_rychlost()); } }
public void helio() { double p = 1 - sustava.objekty[last_index].excentricita; Vektor pom = new Vektor(sustava.objekty[last_index].hl_poloos * p, 0); for (int i = 0; i < sustava.objekty.Length; i++) { posun[i] = Vektor.vynasob_skalarom(pom, k); posun[i].x += 50; posun[i].y = panel.Size.Height / 2; } pretypuj_polohove_vektory(); }
public static void update_hybnost(Teleso a) { //Console.WriteLine("hybnost: " + a.hybnost.x.ToString() + " " + Vektor.vynasob_skalarom(a.sila, dt).x.ToString()); a.hybnost = Vektor.scitaj_vektory(Vektor.vynasob_skalarom(a.sila, dt), a.hybnost); }
public static void update_pozicia(Teleso a) { a.pozicia = Vektor.scitaj_vektory(a.pozicia, Vektor.vynasob_skalarom(Vektor.vydel_skalarom(a.hybnost, a.hmotnost), dt)); }
public void zisti_init_hybnost() { hybnost = Vektor.vynasob_skalarom(new Vektor(0, -1), hmotnost * zisti_init_rychlost()); }