Ich möchte eine Benutzeroberfläche für ein 2D-Quadrat einrichten, um auf das Internet zuzugreifen - irgendwelche Ideen? [abgeschlossen]

Ich habe einen Freund, der ein Quadrat ist (dh er lebt in einer zweidimensionalen Ebene auf der Oberfläche eines Tisches, den ich in meinem Schlafzimmer habe). Er hat ein anständiges Gehör und versteht Englisch, aber ich werde es leid, ihm diese ganze dreidimensionale Sache persönlich erklären zu wollen. Ich frage mich, ob ich einfach eine API einrichten könnte, damit er auf das Internet zugreifen kann, dann könnte er die Dinge selbst herausfinden. Vorzugsweise wäre er in der Lage, sich mit GUIs zu beschäftigen, damit er sich in Foren wie diesem engagieren könnte.

Irgendwelche Vorschläge für die praktischste Art, eine solche Benutzeroberfläche einzurichten? Das Quadrat kann sprechen und sich in der Ebene bewegen. Er ist auch in der Lage, Geräusche zu hören und Reflexionen von Wänden (Formkanten) zu sehen, wenn ich verschiedenes Licht auf sie projiziere.


Bearbeiten: @AlexP hat recht. Ich hätte UI sagen sollen. Ich habe es oben behoben.

Außerdem sollte ich klarstellen, dass ich die Benutzeroberfläche im 3-Raum erstellen werde, also keine Sorgen über die technischen Herausforderungen beim Bauen in 2 Dimensionen.

Es gab einige gute Antworten, aber idealerweise hätte ich gerne, dass er mit Grafiken interagieren kann. Irgendwelche Vorschläge, wie das bewerkstelligt werden könnte?

Was bedeutet "API" in dieser Frage? Es bedeutet ganz sicher nicht Application Programming Interface .
Versuchen Sie, ein Flatland 2.0 einzurichten?
Lieber eine (G)UI als eine API? Letztere definieren die Kommunikation zwischen Prozessen, Sie möchten eine Benutzeroberfläche, denke ich.
Kann er nicht einfach über einen Touchscreen kriechen und bei Bedarf sichtbare Bedienelemente aktivieren?
@Alexander "Er" lebt in 2D, also gibt es für ihn kein "Vorbei".
Es gibt also keine Interaktion mit der Umgebung in seinem ganzen Körper, nur am Rand? Kann er die Farbe eines Bildes zumindest an seinem Rand fühlen?
"In Foren engagieren", damit wir ihm alles erklären können? xkcd.com/1897
Ich glaube, Sie haben sich das überlegt. Dies ist ein gelöstes Problem. en.wikipedia.org/wiki/Computer_accessibility
@Alexander Er kann eine eindimensionale Linie einschließlich Farbe "sehen". Wenn er gegen etwas prallt, kann er es fühlen und kann auch die Schärfe/Glätte dessen spüren, was er berührt hat.
Die Lösung ist bereits da draußen, es muss nicht viel gebaut werden. Ihr Quadrat hat ein gutes Gehör, aber eine effektiv nutzlose Sicht. Klingt für mich nach einem Blinden. Marktübliche Bildschirmlesesoftware. Alles, was Sie brauchen, ist eine Möglichkeit für Ihr Quadrat, einige Tasten zu drücken.

Antworten (6)

Hilbert-Kurven

Ihr viereckiger Freund erlebt den Tisch als eindimensionalen Streifen. Sie surfen im Internet in einem zweidimensionalen Browser. Es scheint mir also, dass Sie nur das 2-D-Pixel-Array in Ihrem Browser in ein 1-dimensionales Pixel-Array konvertieren und auf dem Tisch platzieren müssen. So unintuitiv es auch klingen mag, dies ist mit einer sogenannten raumfüllenden Kurve möglich . Hier ist ein Beispiel namens Hilbert-Kurve :

Hilbert-Kurve
aus Wikipedia

Der Vorteil, die Karte auf diese Weise zu erstellen, ist folgender ( x , j ) Punkte, die in der 2-D-Karte nahe beieinander liegen, sind in der 1-D-Karte immer noch nahe beieinander. Daher sind die Positionen von Schaltflächen, Text usw. beim Scrollen konsistent (wenn auch gelegentlich unzusammenhängend). Außerdem muss das 2-d-Array nicht die gleiche Anzahl von Punkten haben wie das 1-d-Array, wie aus der Animation hervorgeht.

Beispiel

Ich habe ein Beispiel erstellt, wie das aussehen könnte. Folgendes berücksichtigen 64 × 64 Bild (für Aussehen vergrößert):
Katzenbild 1

Wenden wir nun eine Hilbert-Transformation an, um die zu nehmen 64 × 64 = 4096 Strecke von Pixeln:
Katze 1d(Ich habe es 256 Mal hintereinander dupliziert, damit niemand ein Bild mit einer Höhe von 1 Pixel betrachten muss). Sieht für mich wie ein 1-D-Katzenmem aus ;)

Tastatur und Maus

Die Tastatur ist ziemlich einfach; Nehmen Sie eine Tastatur und legen Sie die Tasten in einem 1-d-Array an. Die Mauseingabe ist etwas kniffliger. Sie haben entweder die Möglichkeit, die Maus der 1-D-Anzeige zuzuordnen oder die Maus der 2-D-Anzeige zugeordnet zu lassen und Ihrem viereckigen Freund zu erlauben, die Maus zu bedienen, indem er sich auf dem 2-D-Tisch bewegt. Ich persönlich denke, es würde die 1-D-Mauskarte intuitiver finden.

+1 Zum Generieren eines 1-D-Katzenmems. Es wird wahrscheinlich eine Weile dauern, bis mein Freund solche Bilder liest, aber ich denke, er wird es herausfinden.

Die Eingabe sollte vollständig klangbasiert sein. Ihr Freund sollte sein Surfen auf eine große textbasierte Quelle beschränken, in der der Text ein vorhersagbares Format hat. Zum Beispiel Wikipedia. Dann schreiben Sie ein Text-to-Speech-Programm, das eine beliebige Seite nimmt, die er angibt, und sie ihm vorliest.

Sie stellen „Knöpfe“ auf dem Tisch auf. . .

Geben Sie hier die Bildbeschreibung ein

. . . wo ein Lichtsensor die Farbänderung bemerkt, wenn er sich in den Bereich bewegt. Auf diese Weise kann er eine Zeichenfolge eingeben, für welche Seite er die nächste Seite haben möchte, sowie vorwärts und rückwärts durch die Erzählung springen.

Wie wählt er also Hyperlinks im Text aus, während der Text erzählt wird?
Er wählt keine Hyperlinks aus.

Wir verstehen Daten im Internet normalerweise über einen Computerbildschirm, im Wesentlichen ein 2D-Objekt. Ihr Freund existiert und denkt in 2D, kann aber nur 1D wahrnehmen, vorausgesetzt, er kann nicht durch Wände sehen (wir existieren in 3D, sehen aber nur 2D. Tiefenwahrnehmung hilft hier sehr). Der beste Weg, den ich mir vorstellen kann, um Daten so zu senden, dass er sie lesen kann, ist der Morsecode.

Wenn Sie ein Netzwerk eingerichtet haben, das es ihm erlaubt, Seiten zu besuchen, dann könnte jeder Text auf diesen Seiten in Morsezeichen umgewandelt und auf ein Blatt Papier am Rand des Tisches gelegt werden, damit Ihr Freund ihn lesen kann.

Alternativ, wenn er sprechen/hören kann, wäre ein Text-to-Speech-System wahrscheinlich viel einfacher für Sie zu erstellen und für Ihren Freund, sich daran zu gewöhnen.

Oder nur binär. ;-)

Ein 2-dimensionales Wesen kann die 3. Dimension nicht begreifen....

Für ein zweidimensionales Wesen wirst du immer nur ein Liniensegment sein, dessen Breite der Menge an Material entspricht, in der dein Körper seine Wahrnehmungsebene halbiert. Für ein zweidimensionales Wesen wäre eine Kugel einfach ein wachsender und schrumpfender Kreis, der durch seine Wahrnehmungsebene geht. Es gibt keine Möglichkeit, dass er jemals mehr als zwei Dimensionen wahrnehmen oder verstehen könnte, ohne selbst ein dreidimensionales Wesen zu werden.Geben Sie hier die Bildbeschreibung ein

...Also müssen wir die Dinge in Seine Wahrnehmungen übersetzen

Was die Einrichtung einer Computerschnittstelle zum Lesen und Zugreifen auf Daten anbelangt, müsste diese von unserer räumlichen Wahrnehmung in seine übersetzt werden. Ich denke, eine laserprojizierte Tastatur müsste in zweidimensionale Symbole umgewandelt werden, die er als Buchstaben unseres Alphabets entziffern könnte.

Geben Sie hier die Bildbeschreibung ein

Ich denke an ein Braille-ähnliches System aus Linien und Strichen, die Buchstaben aus unserem Alphabet entsprechen (er muss auch lernen, dieses System zu lesen). Der Computer würde sie in seine Version von Braille übersetzen und seine Eingabe wieder in Normal übersetzen Buchstaben für den Computergebrauch. Für Bilder würden Sie ein 3-dimensionales Rendering "aufschneiden" und sie ihm von oben nach unten, eine Scheibe nach der anderen, anzeigen. Er wird nie ein vollständiges Verständnis dafür haben, was 3D eigentlich ist, aber Sie haben Ihrem Wohnungsfreund jetzt eine Methode gegeben, mit der er mit unserer Welt jenseits des Klangs interagieren kann.

Ich denke, das 3D-Rendering-Slicer-Programm könnte von der 3D-Drucksoftware übernommen werden. Es könnte angepasst werden, ihm Stück für Stück projiziert zu werden, anstatt Stück für Stück gedruckt zu werden.Geben Sie hier die Bildbeschreibung ein

Gutes Argument. Obwohl das Internet meistens 2D ist. Während es also Inhalte gibt, die der Square nur schwer verstehen wird, denke ich, dass es eine Möglichkeit geben sollte, wie er mit den meisten davon interagieren kann.
OK, aber wie beantwortet das die API-Frage?
Richtig Molot, ich habe einen teilweisen Upload eingereicht. Danke, dass du das aufgefangen hast. Werde überarbeiten.
Wir können jedoch Hyperwürfel verstehen und 3D- und 2D-Annäherungen davon rendern ... Ihre Antwort wurde als minderwertig gekennzeichnet, und obwohl ich nicht zum Löschen empfehlen werde, denke ich, dass Ihre Antwort so stark vereinfacht / naiv ist, dass sie falsch ist .
Denn Hyperwürfel gehören zu den seltenen Polytypen, die sich in beliebig vielen vorhandenen Dimensionen darstellen lassen.
Du könntest seine Wahrnehmungsebene so neigen, dass er die Sphäre in all ihrer Pracht wahrnehmen kann. Wird ihn umhauen!
Egal in welche Richtung sein Wahrnehmungsfeld zeigt, er nimmt immer nur einen Linienabschnitt wahr

Für einen vollbehinderten Platz sollte es eigentlich kein Problem sein, für einen behinderten Platz etwas kniffliger.

Während jemand wie Stephen Hawkins, RIP, tatsächlich dreidimensional war, war seine physische Fähigkeit, einen Computer mit Standardeingaben zu verwenden, gelinde gesagt, begrenzt. Glücklicherweise haben wir verschiedene Systeme und Geräte entwickelt, um Menschen mit körperlichen Behinderungen die Nutzung von Computern zu ermöglichen.

Der erste Schritt ist die Ausgabe, denn ohne Feedback kann man nicht mit einem System interagieren.

Ich würde, vielleicht zu Unrecht, annehmen, dass ein 2D-Bildschirm für einen 2D-Charakter dasselbe ist wie eines dieser schicken Sci-Fi-3D-Displays für einen Menschen, es könnte übertrieben und unnötig kompliziert sein, sollte aber dennoch verständlich sein.

Für den Fall, dass Ihr 2D-Kumpel den Bildschirm nicht visuell verstehen kann, gibt es unter Windows (und ich würde andere Systeme annehmen) Zugänglichkeitsoptionen, um zu beschreiben, was auf dem Bildschirm angezeigt wird. Ich habe sie nie benutzt, daher kann ich nicht wirklich dafür bürgen, aber sie sind für Menschen mit Sehbehinderung konzipiert und ich gehe davon aus, dass sie gut genug funktionieren.

Jetzt gehen wir davon aus, dass Ihr Quadrat eine gute Vorstellung davon hat, was auf dem Bildschirm angezeigt wird. Wenn er es nicht tut, hilft es nicht einmal, ihn in ein dreidimensionales Wesen zu verwandeln.

Wenn sich Ihr Quadrat bewegen kann, diese Bewegung erkannt werden kann (z. B. mit einer Kamera oder so etwas wie einer DDR-Matte), haben Sie effektiv einen Mauszeiger. Wenn Ihr Quadrat darüber hinaus sprechen kann, müssen Sie einen Befehl für Linksklick, Rechtsklick, Doppelklick usw. einrichten und dann eine im Handel erhältliche Sprache-zu-Text-Software zum Tippen einrichten. Das wäre die einfachste und unkomplizierteste Art, mit einem Computerbildschirm zu interagieren.

Für den Fall, dass sich Ihr Quadrat nicht bewegen oder sprechen kann, müssen Sie etwas an seine spezifischen Fähigkeiten anpassen. Grundlegende Steuerelemente, die Sie zuordnen müssen, sind Auswahl (z. B. Klicken), Ändern der Auswahl (z. B. Bewegen des Cursors, Alt+Tab), Tippen (was ein Vokabular von Befehlen für jeden Buchstaben sowie einige Sonderzeichen, alternativ Töne oder Silben impliziert). einzelne Zeichen), und das sollte ausreichen, um im Internet zu navigieren.


Denken Sie daran, dass Menschen mit Behinderungen immer noch gerne Computer benutzen würden und dass wir Lösungen für sie gefunden haben. Einige von ihnen sind möglicherweise für Ihr System nativ, einige sind möglicherweise im Handel erhältlich, andere sind möglicherweise eher DYI, aber es sollte immer noch machbar sein.

Offensichtlich sollte jemand, der diese verwendet, mehr Einblick in seine Stärken und Grenzen haben als ich.

Wenn Ihr Quadrat sehen kann, auch wenn es nur eindimensional ist, hat es wahrscheinlich Erfahrung mit dem Betrachten des zweidimensionalen Raums, genauso wie wir die drei Dimensionen um uns herum nur durch unser 2D-Sehen gut erfassen können.
Das heißt, Sie könnten eine Folie aus halbtransparentem Material in die Lebensebene Ihres Würfels legen, auf die Sie Ihren Computerbildschirm projizieren (möglicherweise mit einer Lupe). Indem er sich ein wenig bewegt, könnte das Quadrat wahrscheinlich erraten, was sich in dem Flugzeug befindet.

Wenn ihm das zu schwierig ist, könnten Sie sogar versuchen, das Bild auf einen Nebel zu projizieren, in dem sich das Quadrat frei bewegen kann, um es zu "scannen". Dies würde sich für ihn wahrscheinlich immer noch natürlicher anfühlen als künstliches Schneiden.