• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Problem z "Animacja" w Visual C++ podczas sortowania

Object Storage Arubacloud
0 głosów
88 wizyt
pytanie zadane 11 sierpnia 2020 w C i C++ przez PirchHD Obywatel (1,730 p.)
zamknięte 11 sierpnia 2020 przez PirchHD

Witam wszystkich.

Robię program który ma pokazywać w jaki sposób dany Sort sortuje. Właśnie zrobiłem BubbleSort ale podczas sortowania (przy około elementów > 50) jest efekt jak zdjęciu numer 1. No i zgaduję że to moja wina więc zamiast zacząć robić następne sposoby sortowań.

tutaj video jaki efekt chce: https://www.youtube.com/watch?v=kPRA0W1kECg&t=51s

Git: https://github.com/PirchHD/Sorting/blob/master/Sorting/MyForm.h#L312

private: System::Void Bubble() {
		
		bool swapped;

		for (int i = 0; i < n-1; i++) {
			swapped = false;
			for (int j = 0; j < n - i - 1; j++) {

				if (Sektory[j]->Height > Sektory[j + 1]->Height) {
					
					
					int temp = Sektory[j]->Height;
					Sektory[j]->Height = Sektory[j + 1]->Height;
					Sektory[j + 1]->Height = temp;
					
					Sektory[j]->Location = System::Drawing::Point(pictureBox1->Width * j / n, pictureBox1->Height - Sektory[j]->Height - 39);
					
					swapped = true;
				}
				Sektory[j+1]->Location = System::Drawing::Point(pictureBox1->Width * (j+1) / n, pictureBox1->Height - Sektory[j+1]->Height - 39 );
				
				if (swapped == false) {
					for (int i = 0; i < n; i++) {
						Sektory[i]->BackColor = Color::Green;
					}
				}
				
			}
		}
	
	}

Dzieki i pozdrawiam.

komentarz zamknięcia: najlepsza

1 odpowiedź

+1 głos
odpowiedź 11 sierpnia 2020 przez j23 Mędrzec (194,920 p.)
wybrane 11 sierpnia 2020 przez PirchHD
 
Najlepsza

Zgaduje, że to efekt braku opóźnienia w wewnętrznej pętli - sortuje się tak szybko, że aż kasza się robi (nie posłuchałeś rady, by wszystko rysować). Daj jakiegoś ćwierćsekundowego sleepa i coś, co opróżni kolejkę komunikatów (Application.DoEvents?)

komentarz 11 sierpnia 2020 przez PirchHD Obywatel (1,730 p.)
Dzięki na samym początku dawałem zwykłego sleep z biblioteki windows.h ale było tak samo. Dodałem "Application::DoEvents();" w dodatku przy "sprawdzaniu" dodałem System::Threading::Thread::Sleep(25); by był ten ładny efekt końcowy koloru zielonego. Więc jeszcze raz dzięki

Podobne pytania

+1 głos
1 odpowiedź 360 wizyt
pytanie zadane 29 listopada 2016 w C i C++ przez Domi Nowicjusz (150 p.)
+1 głos
1 odpowiedź 166 wizyt
0 głosów
0 odpowiedzi 808 wizyt
pytanie zadane 7 stycznia 2018 w C i C++ przez 4ever4 Nowicjusz (210 p.)

92,579 zapytań

141,432 odpowiedzi

319,662 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...