Hallo
Ich will auf einem Graphikdisplay durch Angabe zweier Koordinaten (x,y)
die Strecke zwischen diesen beiden Punkten darstellen. Wie kann ich die
Punkte die zwischen beiden Koordinaten liegen berechnen? Eine
Möglichkeit die ich mir vorstellen kann ist, immer den Mittelpunkt
zwischen zwei Punkten zu berechnen und das solange bis alle Punkte
gefunden sind. es gibt auch noch den Bresenham Algorithmus, der aber nur
(einfach) funktioniert wenn der Anstieg der Gerade zwischen 0 und 1
liegt.
Kennt also einer von euch eine sinnvolle Lösung, die sich mit dem MC
verarbeiten lässt (also keine Multiplikation oder Ähnliches)
Vielen Dank
Mfg. Ignis Aureus
Normalerweise gehört zu einem Grafikdisplay immer ein
Grafikkontroller. Dieser besitzt einfache Hochsprachenähnliche
Befehle, z.B. Linie von x1,y1 bis x2,y2.
Die Übertragung der Koordinaten lassen sich auf einfache Weise
mittels Assembler, C, Basic o.ä. zum Grafikkontroller übertragen.
Das Datenblatt des Displays / Kontrollers gibt darüber Auskunft.
Gruß Norbert
So vor etwa 20-25 Jahren wie man noch 8080/Z80 oder 6502 einsetzte und
Internet noch ein Fremdwort war, gab es hier seitenweise Abhandlungen
mit komentierten Sourcen in Elektor,Byte und MC. Wenn du Glück hast sind
diese Ausgaben noch in einigen Boblio-
theken verfügbar.
Hallo Norbert,
berichte uns doch mal von solch einem "normalen" Controller, der die
Linienbefehle gleich mit erledigt. Ich habe da wohl immer in der
falschen Ecke gesucht :)
@ Ignis Aureus:
Also, alle einfache Controller für Flachdisplays haben keine
"Intelligenz" zum Zeichen von geometrischen Konstrukten. Einige, wie
z.B. der S1D13305 (aka SED1335) können Zeichen oder 8x8 Bit große
Bitmaps darstellen. Um einen Controller zu finden, der selbsttätig
zeichnet, muß man in den PC-LCD-Markt schauen. Dort kann man für hohe
Auflösungen/Farbtiefen Hardwareunterstützung erwarten. Selbst die
größten Controller von Epson (z.B. S1D13806) können zwar Bit Block
Transfer, aber keine Linien zeichnen.
Google hilft Dir, Beschreibungen des Bresenham und anderer optimierter
Algorithmen zu finden.
Gruß, Rudolf.
Rudolf Sosnowsky +++ LC Design
EPSON Technology Partner
Internet http://www.LC-Design.de
Hallo
Also ich benutze ein Display mit T6369 Controller von Toshiba, der auf
jedenfall alles andere als intelligent ist. Das einzige was der kann ist
ein Pixel setzen, wenn man ihn austrickst auch 8 auf einmal aber das
wars dann.
Und ich glaube auch, das kein anderer Graphik-LCD-Controller für
Monochromdisplays bis 240x128 solche Algorithmen integriert hat.
Ich werd jetzt wohl doch diesen Bresenham Algorithmus verwenden, auch
wenn man dafür vorher ne 4 fache Fallunterscheidung durchführen muss.
Bin aber trotzdem noch offen für alle Vorschläge.
Mfg. Ignis Aureus
@ Rudolf, auch wenn es dir weh tut, die verhasste Konkurrenz(:-))
http://www.lcd-module.de
liefert diese LCD-Grafikdisplays.
Ein Paradies für die Mensch-Maschine-Schnittstelle.
Ich selber benutze das EA-KIT 240-7 mit Touchscreen(240x128Pixel)
Gruß Norbert
Hallo Norbert,
natürlich liefert Electronic Assembly Module, die elegant programmiert
werden können. Nur haben auch diese Module keinen intelligenten
Graphikcontroller, sonderen einen Microcontroller, der sich abmüht, das
Modul intelligent erscheinen zu lassen :)
Ich wollte nur Dein "normalerweise" kommentieren; denn diese Funktion
wird nicht vom LCD-Controller ausgeführt. Dafür ist dann der Preis des
Gesamtsystems gegenüber der Mehrbelastung des Systemprozessors
abzuwägen.
Gruß, Rudolf.
Rudolf Sosnowsky +++ LC Design
EPSON Technology Partner
Internet http://www.LC-Design.de
@rudolf
Natürlich ist das kein intelligenter Grafikcontroller, sondern nur ein
zusätzlicher Microcrontroller im 44pin PLCC. Vereinfacht die
Konstruktion von Kleinserien oder Prototypen aber enorm und ist mit <28
Euro auch noch preiswert, wenn man sich den Programmieraufwand sparen
will.
Für die kleiner LCD Display gibt es z.Zt. wohl keinen intelligenten
Controller der über 2D gewschweige denn 3D Funktion verfügt, lohnt sich
wohl auch nicht für Halbleiterindustrie so etwas aufzulegen. Wenn ich
aber an die grösseren Displays denke ist es dort sehr wohl der Fall, da
man ja ich durch entsprechende Interface-Auswahl z.B. DVI oder andere
Protokolle die Controller aus der normalen CRT Technologie nutzen kann.