Delphi-PRAXiS
Seite 6 von 7   « Erste     456 7      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   FreePascal Bubblesort Problem (https://www.delphipraxis.net/186830-bubblesort-problem.html)

HolgerX 9. Mär 2018 09:34

AW: Bubblesort Problem
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hmm..

Hab da mal was herumgespielt...

Es ist ein kleines Testtool, welches das so (ähnlich) macht, wie Du es (meiner Meinung nach) möchtest.

Habe hierzu ein paar Zeilen von Dir verwendet, nutze jedoch (für den Test) kein GDI+.

Es werden hier Kreise gemalt, welche sich in einem Kreis drehen.

Ich berechne die Positionen der jeweiligen Kreise immer wieder neu und die Y-Position gibt auch gleich an, welches am weitesten hinten und somit als Erstes, teil verdeckt gezeichnet wird. Dies geht, da durch die Perspektive die Kreise, welche am weitesten hinten sind auch am höchsten (am Mittelpunkt betrachtet) sind.

Das Demo ist einfach nur Quick and Ditry gebastelt..
(Verwendet wurde D6)

Delphi-Laie 9. Mär 2018 09:55

AW: Bubblesort Problem
 
Zitat:

Zitat von freimatz (Beitrag 1395616)
Zitat:

Zitat von Delphi-Laie (Beitrag 1395609)
Oder sind die Relationen der zu sortierenden Objekte intransitiv?

Was meinst Du damit? Bitte erkläre das Wort intransitiv in dem Zusammenhang oder erkläre das was du sagen willst ohne das Wort. Danke.

Die Tanten Google und Wikipedia sind Dein Freund.

Intransitiv bedeutet, daß nicht gilt: Wenn a<=b und b<=c dann a<=c, jedenfalls nicht immer und zwangsläufig. Einfaches Beispiel ist das Spiel "Schnick schnack schnuck".

M.E. kann man, wenn Intransitivität gilt, keinen Sortieralgorithmus darauf begründen, jedenfalls keinen, wie mir bekannt.

Darauf kam ich wegen des Kreisbildes, das weiter zuvor angehängt wurde.

madas 9. Mär 2018 10:03

AW: Bubblesort Problem
 
Zitat:

Zitat von EWeiss (Beitrag 1395462)
Genau so soll es sich drehen (bzw. die Anordnung sein) wie in deinem Bild gezeigt

Na ja werde mal schaun habe noch andere Baustellen.

gruss

Hast Du denn meinen Lösungsansatz mal ausprobiert? Oder hast Du ihn nciht verstanden.

Die Werte für X und Y im Koordinatensystem berechnest Du ja schon pro Kugel. Nun brauchst Du dem Z-Index der Kugel doch nur noch -1 * Y-Wert der Kugel zuweisen
und dann sollte es doch eigentlich funktionieren.

madas

madas 9. Mär 2018 10:08

AW: Bubblesort Problem
 
Zitat:

Zitat von EWeiss (Beitrag 1395577)
PM von Dir

Leider kann ich Dir nicht via PM antworten, da Du die Annahme selbiger ablehnst. :(
Von daher lade Dein Projekt hier als Zip-Datei hoch. Dann könnten auch andere drüber schauen.

madas

EWeiss 9. Mär 2018 10:10

AW: Bubblesort Problem
 
Zitat:

Wenn du da keinen 100%igen Plan wird das nie was und du kannst Sortieralgorithmen implementieren bis du schwarz wirst.
Ich weis nicht was da nicht zu verstehen ist.
Das Array beginnt bei 0 oder?
Ich habe 10 Objekte von 0 > 9

Also egal ob ich von links nach rechts oder von rechts nach links diese Objekte drehe ist immer das erste Objekt der Antrieb in dem fall 0.

Da ich diese aber vom Höchsten Index zum kleinsten durchlaufe ist es in dem fall die 9 (das 10 Objekt)
Auf die werte die nun bei der Berechnung während dem durchlauf der Schleife entstehen habe ich keinen Einfluss.

Nun sollen diese ausgetauscht werden abhängig davon wo diese sich gerade befinden.
Keine Ahnung was ihr immer mit 100% Plan meint, was gibt es da zu planen?
Dazu muss man sich nur mal meinen Code DrawCarousel anschauen dann sieht man das was ich geplant habe.

gruss

EWeiss 9. Mär 2018 10:12

AW: Bubblesort Problem
 
Zitat:

Von daher lade Dein Projekt hier als Zip-Datei hoch. Dann könnten auch andere drüber schauen.
Sorry nein aber du kannst es gerne nochmal versuchen sollte jetzt gehen.

Zitat:

Hast Du denn meinen Lösungsansatz mal ausprobiert? Oder hast Du ihn nciht verstanden.
Habe ich versucht und verstanden aber er funktioniert nicht.
Die Zorder ist immer noch falsch.
Danke.

Zitat:

Es ist ein kleines Testtool, welches das so (ähnlich) macht, wie Du es (meiner Meinung nach) möchtest.
HolgerX werde es mir mal anschauen.. Danke für deine Mühe.
Super gemacht ;) :thumb:

gruss

TiGü 9. Mär 2018 10:23

AW: Bubblesort Problem
 
Zitat:

Zitat von HolgerX (Beitrag 1395629)
Hmm..

Hab da mal was herumgespielt...

Es ist ein kleines Testtool, welches das so (ähnlich) macht, wie Du es (meiner Meinung nach) möchtest.

Habe hierzu ein paar Zeilen von Dir verwendet, nutze jedoch (für den Test) kein GDI+.

Es werden hier Kreise gemalt, welche sich in einem Kreis drehen.

Ich berechne die Positionen der jeweiligen Kreise immer wieder neu und die Y-Position gibt auch gleich an, welches am weitesten hinten und somit als Erstes, teil verdeckt gezeichnet wird. Dies geht, da durch die Perspektive die Kreise, welche am weitesten hinten sind auch am höchsten (am Mittelpunkt betrachtet) sind.

Das Demo ist einfach nur Quick and Ditry gebastelt..
(Verwendet wurde D6)

Top, kompiliert auch unter Tokyo.

@EWeiss, guck dir das an und versuche das auf dein Problem zu übertragen.

EWeiss 9. Mär 2018 10:31

AW: Bubblesort Problem
 
Zitat:

@EWeiss, guck dir das an und versuche das auf dein Problem zu übertragen.
Habe ich und es ist fast das selbe wie bei mir wenn man von GDI+ das entgegengesetzte drehen sowie die Größe der Objekte abhängig von der Tiefe mal absieht.
Ich kann keinen großen unterschied ausmachen.

Abgesehen davon das sich die Objekt an ihrer jeweiligen Position verändern.
Das kann ich so nicht machen.
Wenn einer dieser Kreise bsp. Gelb an der 5 Position steht darf sich diese nicht verändern tut sie aber in dem Beispiel.
Die Reihenfolge muss konstant bleiben so wie bei mir aber die ZOrder (das überlagern) der einzelnen Objekte sich anpassen.

Muss nochmal in meine DLL schauen da ich glaube das dieses spezifische Problem dort und nicht
mit dem Bubblesort produziert wird.

gruss

HolgerX 9. Mär 2018 11:07

AW: Bubblesort Problem
 
Hmm..

Zitat:

Zitat von EWeiss (Beitrag 1395642)

Abgesehen davon das sich die Objekt an ihrer jeweiligen Position verändern.
Das kann ich so nicht machen.
Wenn einer dieser Kreise bsp. Gelb an der 5 Position steht darf sich diese nicht verändern tut sie aber in dem Beispiel.
Die Reihenfolge muss konstant bleiben so wie bei mir aber die ZOrder (das überlagern) der einzelnen Objekte sich anpassen.

Die Kugeln drehen sich im Kreis...
Jede behält immer ihre, gleiche Farbe..
Sie bleiben immer in der gleichen Reihenfolge, es kommt nur immer die nächste durch das Drehen nach vorne..
Die vorderen Überlagern die Hinteren..

Hmm..

Zitat:

Zitat von EWeiss (Beitrag 1395390)
Ich habe 10 Objekte die sich im Kreis drehen.
Wenn sich diese im Vordergrund befinden dann soll das nächstfolgende das davor liegende überlagern.
Wenn das letzte Objekt hinten liegt in dem fall das 10 dann soll das folgende dieses überlagern.

Ist es nicht das was hier gefordert wurde?

Die Größenreduzierung ändert ja nichts an der Position, nur wie die Objekte gemalt werden und könnte ebenfalls (vereinfacht) über die Y-Position berechnet werden.

EWeiss 9. Mär 2018 11:10

AW: Bubblesort Problem
 
Zitat:

Jede behält immer ihre, gleiche Farbe..
Korrekt sorry..
War bei mir beim ersten Start nicht so kann jetzt nicht sagen woran es lag.

Funktioniert aber nach erneuten kompilieren jetzt richtig.

Zitat:

Ist es nicht das was hier gefordert wurde?
Doch.

Zitat:

Die Größenreduzierung ändert ja nichts an der Position, nur wie die Objekte gemalt werden und könnte ebenfalls (vereinfacht) über die Y-Position berechnet werden.
Richtig.

Keine Ahnung warum das bei mir so war nach jedem ändern der Zorder
veränderten sich alle Farben an unterschiedlichen Positionen.

oops.. war mein Fehler.
hatte diese zeile geändert wollte was testen ;)

Delphi-Quellcode:
for i := Length(FSprites)-1 downto 0 do begin
Meine Dummheit.

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:39 Uhr.
Seite 6 von 7   « Erste     456 7      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz