public static void RunAlgorithm() { if (currentIteration >= MAX_ITERATIONS) { Wykres.NotifyAlgorithmFinished(currentIteration, currentGens.OrderBy(point => point.GetFunctionValue()).First().GetFunctionValue()); return; } List <MyPoint2D> nextGens = new List <MyPoint2D>(); for (int i = 0; i < LAMBDA; i++) { MyPoint2D nextGenPoint = GetBestCurrentPointUsingTournament(); nextGens.Add(MutatePoint(nextGenPoint)); } List <MyPoint2D> muAndLambda = new List <MyPoint2D>(currentGens); muAndLambda.AddRange(nextGens); currentGens = muAndLambda.OrderByDescending(point => point.GetFunctionValue()).Take(MU).ToList(); Wykres.NotifyNewDataCalculated(currentIteration + 1, currentGens.OrderBy(point => point.GetFunctionValue()).First().GetFunctionValue()); currentIteration++; }
public void ustaw(WykresModel wykres) { Wykres ustawienia_wykresu = new Wykres(); float najmniejszaWartosc_y = wykres.get_y(0); float najwiekszaWartosc_y = wykres.get_y(0); float najmniejszaWartosc_x = wykres.get_x(0); float najwiekszaWartosc_x = wykres.get_x(0); for (int i = 0; i < wykres.punkty.Count; i++) { if (wykres.get_y(i) > najwiekszaWartosc_y) { najwiekszaWartosc_y = wykres.get_y(i); ustawienia_wykresu.pik_mapa = i; } if (wykres.get_y(i) < najmniejszaWartosc_y) { najmniejszaWartosc_y = wykres.get_y(i); } } for (int i = 0; i < wykres.punkty.Count; i++) { if (wykres.get_x(i) > najwiekszaWartosc_x) { najwiekszaWartosc_x = wykres.get_x(i); } if (wykres.get_x(i) < najmniejszaWartosc_x) { najmniejszaWartosc_x = wykres.get_x(i); } } ustawienia_wykresu.najmniejsza_x = najmniejszaWartosc_x; ustawienia_wykresu.najwieksza_x = najwiekszaWartosc_x; ustawienia_wykresu.podzialka_x = (najwiekszaWartosc_x - najmniejszaWartosc_x) / 16; ustawienia_wykresu.zakres_wykresuX = najwiekszaWartosc_x - najmniejszaWartosc_x; ustawienia_wykresu.zakres_wykresuY = najwiekszaWartosc_y - najmniejszaWartosc_y; ustawienia_wykresu.najmniejsza_y = najmniejszaWartosc_y; ustawienia_wykresu.najwieksza_y = najwiekszaWartosc_y; ustawienia_wykresu.podzialka_y = (najwiekszaWartosc_y - najmniejszaWartosc_y) / 18; ustawienia.Add(ustawienia_wykresu); }
private void ZaladujZak_Click(object sender, EventArgs e) { int liczba; // usuń to int liczba2; int x, y; DialogResult res = openFileDialog1.ShowDialog(this); if (res == DialogResult.OK) { nazwa_zakodowany = openFileDialog1.FileName; Steganografia sprawdzMaske = new Steganografia(Image.FromFile(nazwa_zakodowany)); int [] maskaInfo = sprawdzMaske.ReadInfoMask(); liczba = maskaInfo[1]; if (maskaInfo[0] == identyfikator) { ZakObraz.Image = Image.FromFile(nazwa_zakodowany); x = ZakObraz.Image.Height; y = ZakObraz.Image.Width; liczba2 = (x * y * (maskaInfo[2] + maskaInfo[3] + maskaInfo[4]) - 90) / 8; } else { MessageBox.Show("Brak zakodowanej informacji w podanym obrazie!\nZaładuj obraz zawierający ukryte dane.", "Brak ukrytych informacji", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } else { return; } string[] nazwa; nazwa = nazwa_zakodowany.Split('\\'); nazwa_zakodowany = nazwa[nazwa.Length - 1]; pamiec_zajeta = liczba; pamiec_cala = liczba2; Wykres.Chart(new float[] { pamiec_zajeta, pamiec_cala - pamiec_zajeta }); zakodowanyInfo.Text = "\nNazwa: " + nazwa_zakodowany + "\n" + "Rozmiar: (" + x + "x" + y + ")\n"; toolStripStatusLabel1.Text = "Pomyślnie wprowadzono plik z obrazem: " + "'" + nazwa_oryginalny + "'"; }
private void Wykres_MouseMove(object sender, MouseEventArgs e) // odczytywanie wartości z wykresu { Point mousePoint = new Point(e.X, e.Y); // ustawienie poczatkowe kursora myszy Wykres.ChartAreas[0].CursorX.Interval = 0; Wykres.ChartAreas[0].CursorY.Interval = 0; // krzyż pikselowej pozycji kursora Wykres.ChartAreas[0].CursorX.SetCursorPixelPosition(mousePoint, true); Wykres.ChartAreas[0].CursorY.SetCursorPixelPosition(mousePoint, true); // najechanie na krzywą kursorem - hit test HitTestResult result = Wykres.HitTest(e.X, e.Y); // warunek hit testu jeżeli jest rezultat i jeżeli jesteś na powierzchni wykresu if (result.PointIndex > -1 && result.ChartArea != null) { // odczytywanie wartości z wykresu label11.Text = "H [m] = " + result.Series.Points[result.PointIndex].YValues[0].ToString(); label12.Text = "Q [m3/s] = " + result.Series.Points[result.PointIndex].XValue.ToString(); } }
private void zakoduj_Click(object sender, EventArgs e) { //sprawdzonko if (text1.Text == "") { MessageBox.Show("Nie wszystkie pola zostały uzupełnione!!!", "Brak danych", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } //czy wybrano obrazek if (OryObraz.Image == null) { MessageBox.Show("Nie wszystkie pola zostały uzupełnione!!!", "Brak danych", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (pamiec_zajeta > pamiec_cala) { MessageBox.Show("Brak wystarczającej ilości wolnej pamięci na nośniku!!!", "Brak miejsca", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } Steganografia koduj = new Steganografia(text1.Text, OryObraz.Image, R, G, B); koduj.zakoduj_w_obrazie(); Bitmap bmp = koduj.pobierzObraz(); ZakObraz.Image = bmp; toolStripStatusLabel1.Text = "Pomyślnie zakodowano plik tekstowy: " + "'" + nazwa_text + "'" + " w obrazie: " + "'" + nazwa_oryginalny + "'"; // Zapis na dysk string odp = MessageBox.Show("Zakończono proces kodowania.\nZapisać wynik na dysku?", "Zapisywanie", MessageBoxButtons.YesNo, MessageBoxIcon.Question).ToString(); if (odp == "Yes") { DialogResult res = saveFileDialog1.ShowDialog(this); if (res == DialogResult.OK) { nazwa_zakodowany = saveFileDialog1.FileName; bmp.Save(nazwa_zakodowany); } else { return; } string[] nazwa; nazwa = nazwa_zakodowany.Split('\\'); nazwa_zakodowany = nazwa[nazwa.Length - 1]; } else { nazwa_zakodowany = nazwa_oryginalny; } Wykres.Chart(new float[] { pamiec_zajeta, pamiec_cala - pamiec_zajeta }); int x = ZakObraz.Image.Width; int y = ZakObraz.Image.Height; zakodowanyInfo.Text = "\nNazwa: " + nazwa_zakodowany + "\n" + "Rozmiar: (" + x + "x" + y + ")\n"; }