Xpresso

margoyle

Mitglied
Hi,

meine letzten Programmierversuche und C++ sind schon ein paar Tage her, dennoch denke ich, dass mir die Materie Xpresso prinzipiell nicht unzugänglich ist. Als ich jedoch mich an meinen ersten Versuch gesetzt habe, bin ich schnell an meine Grenzen gestoßen :confused:

Folgende Aufgabenstellung:

Ich möchte ein digitales Ziffernblatt erstellen, das aus den typischen kleinen Elementen besteht die sich, je nach meiner Eingabe, eben zu Ziffern formen.
Habe also hier meine 7 "Striche" also Objekte, alle schön nummeriert und möchte nun ein Benutzerfeld kreieren, wo ich beispielsweise ne "6" eintrage, und dadurch alle "Striche" die nicht zur Dadrstellung der "6" benötigt werden, ausgeblendet werden.

Ein Ding der Unmöglichkeit.... im Moment :mad:

Ich fang besser erst gar nicht mit meinen unzähligen gescheiterten Versuchen an und frag lieber gleich nach professionellen Vorschlägen ;)
Das muss doch in Xpresso irgendwie zu machen sein...

Thx schonmal,
margoyle
 
Hi!

Hm, wäre schon gut, wenn Du die Schwierigkeiten zumindest ein wenig eingrenzen könntest: scheitert es bereits am Ein- und Ausblenden? Oder am Algorithmus?

Grundsätzlich braucht ja nur für jedes Display-Element geschaut werden, ob es bei der gegebenen Zahl gebraucht wird. Das oberste, horizontale Display-Element z.B. wird bei den Zahlen 0,2,3,5,6,7,8 und 9 benötigt. Also könnte man mittels zwei Vergleichs-Nodes und einem Boole-Node prüfen, ob "Zahl" (Benutzerdatum) gleich 1 oder gleich 4 ist und dementsprechend die Sichtbarkeit des Elements setzen.
Natürlich werden das so einige Vergleiche und somit eine Menge Nodes...

Per Coffee (-Node) wird's kürzer, da dort die Vergleiche als "if-Abfragen" (oder Switch-case) viel schöner und kürzer zusammengefasst werden können.

Wenn es aber unbedingt mit XPresso sein soll und die etlichen Vergleiche zu aufwändig sind, gäbe es noch eine Alternative über Splines als "Datenträger"; die Spline-Punkte fungieren als Array. So könnten z.B. die Punkte der Spline auf (0,1,0) (1,0,0) (2,1,0) (3,1,0) (4,0,0) (5,1,0) (6,1,0) (7,1,0) (8,1,0) (9,1,0) liegen und das oberste Display-Element für die "Zahl" definieren. Punkt-Node die Zahl zuweisen und schon erhält man als Position.Y den gewünschten Zustand.
... nur mal als möglichen Ansatz :)

Liebe Grüße,
Mark.

//edit: binäre Vergleiche wären natürlich fein, aber so weit ich weiß, ist das mit XPresso nicht "mal eben so" gemacht ;)

//edit2: öhm, die Punkte der "Daten"-Spline oben können natürlich auch alle auf X=0 liegen, wir verwenden ja nur den Y-Wert und X entspricht der Punkt-Nummer ... sah halt schöner aus, tut aber nicht not ;)
 
Hi!

Hmpf, konnte es nicht lassen. Anbei die "Spline-Array-Variante" als Möglichkeit.
Hierarchie-Node: Referenz "display", Start-Pfad D, Iterations-Pfad N
display-Node: "Zahl" ist ein Benutzerdatum des Null-Objekts "display", Integer Min 0 Max 9
display_array ist eine Spline, wie oben erwähnt, als "Datenträger": einfach angefügte Text-Datei einer punktlosen Spline über das Struktur-Fenster per Datei / ASCII-Datei hinzuladen... Die Punkte der Spline geben folgend pro "Zahl" (Punkte 0-6 = Zahl 0, Punkte 7-13 = Zahl 1 usw.) per Y-Position (0 = Aus, 1 = An) den Zustand der Display-Elemente an.

Hoffe, ich habe nichts vergessen zu beschreiben :)

Liebe Grüße,
Mark.
 

Anhänge

  • display1.jpg
    display1.jpg
    23 KB · Aufrufe: 30
  • display2.jpg
    display2.jpg
    37,1 KB · Aufrufe: 41
  • display_array.txt
    719 Bytes · Aufrufe: 40
Hallo Mark,

wieder einmal ein Problem genial gelöst! Auf die Idee mit dem Spline-Array, wäre ich niemals gekommen.
Ich verstehe die Schaltung zwar nicht vollständig, aber es funktioniert.

Vielen Dank,
CUBE
 
WoW,

danke! Das hat meine Erwartung etwas gesprengt :)
Das AN/AUS-Prinzip für die einzelnen Elemente bei spezifischem Bild war mir klar, die Lösung über den Spline muss ich aber erst noch verstehen lernen ...:suspekt:

Trotzdem vielen Dank, ich meld mich, wenn ich's kapiert hab ^^
 
OK, ich hab s soweit verstanden und umsetzten können... nun kommt Phase II ;)

Das ganze soll beispielsweise Teil einer Uhranzeige werden, bei der ich den gewünschten Wert eingebe (z.B. in Stunden, Minuten, Sekunden) und (natürlich auf der entsprechenden Anzahl von Feldern) die jeweiligen Zeichen erscheinen.

ich übernehme also für jedes DisplayFeld die bereits ausgeknobelte Spline-Variante,
will jedoch nicht für jedes Feld ein eigenes Benutzerdatum einrichten, sondern nur ein zentrales Feld haben.

Frage:
wie komme ich an bestimmte Positionen einer Zeichenkette von diesem zentralen Feld ?

grüße,
margoyle
 
Hi!

Schau mal im XPresso-Fenster unter: X-Pool / System Presets / String / Mid String :)

Liebe Grüße,
Mark.
 
Mein Held :)

Mit dem mid-string gings dann doch recht schnell ...
Im Anhang darf das Ergebnis gern bestaunt werden ;)

Vielen Dank für die Hilfen und Anregungen!

viele grüße,
margoyle

Edit: Leider konnt ich bisher keinerlei Handbuch-Infos zum X-pool finden (bzw. zu den einzelnen presets) , das Ding bleibt im Moment noch ein Buch mit 7 Siegeln. Wo find ich dazu Infos?
 

Anhänge

  • schaltung.jpg
    schaltung.jpg
    36,4 KB · Aufrufe: 32
  • ergebnis.jpg
    ergebnis.jpg
    34 KB · Aufrufe: 28
Zuletzt bearbeitet:

Neue Beiträge

Zurück