--------------------------------------------------------------------------------
directly from my Sun workstation ULTRA 1 under SunOS 5.5.1 and CDE V 1.0.2
--------------------------------------------------------------------------------
An alle Mathematica-Kundigen ! Stuttgart, den 31. Januar 2000
Objekte und Zugriffs-Funktionen
-------------------------------
Zuerst ein konkretes Beispiel, dann meine Frage !
Beispiel
--------
In einer eMail an die DMUG vom Fri, 28 Jan 2000 09:55:30 +0100 stellte Manfred
Noelte die folgende Frage :
------
Ich habe auch gleich eine Frage:
??gr
ergibt:
gr="Graphics"[ Raster[{{{238,238,238},{181,181,181},
Wie komme ich an die Raster-Daten heran?
------
In einer eMail vom Fri, 28 Jan 2000 12:02:45 +0100 antwortete Robert Nowak
darauf :
------
Hallo,
das ist nicht weiter schwer:
First@First@gr
und schon liegt eine matrix der bildpunkte vor dir, wobei die matrixzeilen
den bildzeilen, die matrixspalten den bildspalten entsprechen. die
matrixelemente sind bei farbbildern jeweils 3 elementige vektoren mit den rgb
werten des entsprechenden pixels.
mit
(First@First@gr)[[1,1]]
erhaelts du also das pixel in der 1.Zeile 1.Spalte
mit
(First@First@gr)[[1,1,1]]
den rot wert
mit
(First@First@gr)[[1,1,2]]
den gruen wert
mit
(First@First@gr)[[1,1,3]]
den blau wert
-----
Absoluter Datenzugriff
----------------------
Diese Antwort kann nur jemand geben, der die _detaillierte Listenstruktur_ des
Objektes
gr="Graphics"[ Raster...
genau kennt, der also weiss, wie diese Listenstruktur in Bezug auf Dateninhalt
und dessen Anordnung aufgebaut ist.
Erst dann kann man ueber die entsprechenden Listen-Indizes auf die gesuchten
Daten zugreifen.
Das moechte ich hier als _absoluten Datenzugriff_ bezeichnen.
Information Hiding
------------------
Bei _abstrakten Datentypen_ aber unterscheidet man nach meinem Wissen zwischen
der _eigentlichen Datenstruktur_ und den _Zugriffsfunktionen_, die auf diesen
abstrakten Datentypen arbeiten.
Der Anwender muss somit nicht wissen,
- _wie_ die Datenstruktur _aufgebaut_ ist,
- _wo_ die einzelnen Teile der Datenstruktur stehen,
- _wie_ genau man darauf _zugreift_ .
Information Hiding bei Mathematica
----------------------------------
Anscheinend verstehen Funktionen wie Show[ datum ] auch, welcher Datentyp vor-
liegt und wie er zu behandeln ist.
Steht aber zu solchen Objekten wie einer Raster-Graphik auch eine _allgemeine
Zugriffsfunktion_ zur Verfuegung, die etwa so aufgerufen wird :
exportedData :=
ZugriffsFunction[ objectName,
symbolicObjectPart,
{ listOfObjectPartIndices },
furtherOptions
] ?
Konkret etwa also :
redPixelMatrix :=
ZugriffsFunction[ graphicObjectName,
redPixel,
{ { x, 1, last }, { y, 1, last } }
] .
Schlussbemerkung
----------------
Leider sehe ich keine allgemeine Antwort auf meine Frage; vielleicht gibt es
trotzdem eine allgemeine Antwort !
Fuer eine Stellungnahme waere ich dankbar !
Mit freundlichen Gruessen,
Gunter Woysch File : mail_00/dmug_000131_email_to
--------------------------------------------------------------------------------
Dr. G. Woysch ASIC Technology and Qualification
c/o Alcatel SEL AG VLSI Layout Verification
Research Center VLSI Interconnects
ZFZ/TM
Holderaeckerstr. 35 Phone +49-711- 821 32176
D-70499 Stuttgart Fax +49-711- 821 32455
Germany eMail gwoysch@XXXXXXX.de
--------------------------------------------------------------------------------