public double OkreslSredniaOdleglosc(Mrowka sprawdzanaMrowka) { if (czasDlaKtoregoPoliczonoOstWartosc == czas.Aktualny) { return(ostatniaObliczonaWartosc); } else { if (czas.Aktualny <= deltaT) { // Im bardziej na to patrzę, tym bardziej rozsądne wydaje mi się, żeby raczej używać stałej, choćby i 0. // Pierwsze kilka iteracji i tak jest praktycznie bez znaczenia. var wartoscPoczatkowa = zrodloWartPoczatkowych.OkreslSredniaOdleglosc(sprawdzanaMrowka); poprzednieWartosci[czas.Aktualny] = wartoscPoczatkowa; return(wartoscPoczatkowa);// - kAlfa * wartoscPoczatkowa; } else { int staryCzas = czas.Aktualny - deltaT; double wartHistorycznaDopasowania = srednieDopasowaniaOdCzasu[staryCzas]; double roznicaSrednich = wartHistorycznaDopasowania - srednieDopasowaniaOdCzasu[czas.Aktualny - 1]; // Jeśli -1 tu nadal jest: to nieprzemyślana poprawka na szybko, bo średniej dla danego aktualnego t jeszcze nie było. Przemyśleć i ew. poprawić. double wartHistorycznaSredniejOdl = poprzednieWartosci[staryCzas]; double wartAktualna = wartHistorycznaSredniejOdl - kAlfa * roznicaSrednich; poprzednieWartosci[czas.Aktualny] = wartAktualna; czasDlaKtoregoPoliczonoOstWartosc = czas.Aktualny; ostatniaObliczonaWartosc = wartAktualna; return(ostatniaObliczonaWartosc); } } }
private Brush OkreslKolor(Mrowka mrowka) { int bazaIdPedzla = okreslaczPedzla.ZwrocBazeDoOkresleniaPedzla(mrowka); if (pedzleKlas.TryGetValue(bazaIdPedzla, out var znanyKolor)) { return(znanyKolor); } var idKoloru = bazaIdPedzla % dostepnePedzle.Count; var nowyKolor = dostepnePedzle[idKoloru]; if (pedzleKlas.ContainsValue(nowyKolor)) { if (pedzleKlas.Count >= dostepnePedzle.Count) { return(nowyKolor); } else { nowyKolor = dostepnePedzle.First(kolor => !pedzleKlas.Values.Contains(kolor)); pedzleKlas[bazaIdPedzla] = nowyKolor; } } else { pedzleKlas[bazaIdPedzla] = nowyKolor; } return(nowyKolor); }
private double OkreslSkladowaOceny(Mrowka oceniana, Mrowka zSasiedztwa) { var odleglosc = sloOdleglosci.OkreslOdleglosc(oceniana, zSasiedztwa); var sredniaOdlDlaOcenianej = srednieOdleglosci.OkreslSredniaOdleglosc(oceniana); var odlKwadrat = odleglosc * odleglosc; var sredniaOdlKwadrat = sredniaOdlDlaOcenianej * sredniaOdlDlaOcenianej; var stosunekSredniejDoFaktycznej = sredniaOdlKwadrat / (odlKwadrat + sredniaOdlKwadrat); return(stosunekSredniejDoFaktycznej); }
public string Okresl(Mrowka mrowka) { if (mrowka != null) { return(Formatuj(mrowka.Id.ToString())); } else { return(Formatuj(String.Empty)); } }
public int ZwrocBazeDoOkresleniaPedzla(Mrowka mrowkaDoNamalowania) { if (mrowkaDoNamalowania is null) { return(wartDomyslnaNull); } if (slownik.TryGetValue(okreslaczKlucza(mrowkaDoNamalowania), out int baza)) { return(baza); } return(wartDomyslnaBrak); }
public string Okresl(Mrowka mrowka) { if (mrowka != null) { Console.BackgroundColor = (ConsoleColor)(mrowka.Klasa % 16); return(Formatuj(mrowka.Klasa.ToString())); } else { Console.ResetColor(); return(Formatuj(String.Empty)); } }
private static double ObliczBladKwadratowyPomiedzy(Mrowka centrum, Mrowka faktyczna) { var dlugoscMrowkiWMm = centrum.Dane.Length; var blad = 0.0; for (int i = 0; i < dlugoscMrowkiWMm; i++) { var bladDlaWymiaru = Math.Pow(faktyczna.Dane[i] - centrum.Dane[i], 2); blad += bladDlaWymiaru; } return(blad); }
public double Ocen(Mrowka mrowka, (int x, int y) pozycjaMrowki)
public bool CzyAktywowac(Mrowka mrowka, (int x, int y) pozycjaMrowki)
public int OkreslKlase(Mrowka mrowka, (int x, int y) pozycjaMrowki)
public double OkreslSredniaOdleglosc(Mrowka sprawdzanaMrowka) { return(srednia.OkreslSredniaOdleglosc(sprawdzanaMrowka)); }
public void Przemiesc(Mrowka mrowka, (int x, int y) pozycjaMrowki)
public int ZwrocBazeDoOkresleniaPedzla(Mrowka mrowkaDoNamalowania) { return(mrowkaDoNamalowania != null ? mrowkaDoNamalowania.Klasa : wartDomyslna); }
public double OkreslSredniaOdleglosc(Mrowka sprawdzanaMrowka) { return(srednieOdleglosci[sprawdzanaMrowka.Id]); }