DMUG-Archiv 2000

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Objekte und Zugriffs-Funktionen

--------------------------------------------------------------------------------

  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

--------------------------------------------------------------------------------


Antworten:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html