AW: 3D Kurve
14.07.2007 11:57:00
ingUR
Hallo, Dennis,
hier die Gesamtlösung für die Projektion einer 3D-Funktion auf die X/Y-Ebene mit EXCEL-Zellenfunktionen
3D_TransformEXCELFORMEL
Die Berechnung der Funktion erfolgt in den Spalten B:D in Abhängigkeit vom Wert in Spalte A nach Deinem Beispiel. Die Spalte E ist mit dem Wert 1 je Wertezelle zu füllen, um den später zu besprechenden allgemeinen Matrixeinsatz zu ermöglichen (kann entfallen, wenn nicht über Matrixrechnung gegangen wird, wie zum Schluß dargestellt).
Mit den Zellenbereich G3:H5 ist eine Eingabebereich gegeben, der für die Rotationsspaltenwert G3 und G4 auch über die Schieberegler eingestellt werden kann.
Einträge in der Zelle H5 bleiben ohne sichtbare Auswirkungen, da sie das Verschieben des Graphen auf der Z-Achse bewirken, und da die Z-Achse senktecht aus der Darstellungsebene X/Y tritt und auf den Betrachter gerichtet ist, treten bei einer Orthogonalprojektion (der Projektionstrahl trifft senrecht auf die Projektionebene) keine sichtbaren Veränderungen auf.
Das Weltkoordinatensystem mit den Achen x, y und z wird hier als rechstdrehendes System definiert, wobei die x- und y-Achse mit der X- bzw. Y-Achse parallel verlaufen ("EXCEL-System", X nach rechts positiv, Y nach oben positiv). Das bedeutet:
- wenn die positive y-Achse in Richtung der positiven z-Achse und gedreht wird, dann weist die Schraubrichtung in der positive x-Richtung (Drehung um die x-Achse)
- wenn die positive z-Achse in Richtung der positiven x-Achse gedreht wird, dann weist die Schraubrichtung in der positive y-Richtung (Drehung um die y-Achse)
- wenn die positive x-Achse in Richtung der positiven y-Achse gedreht wird, dann weist die Schraubrichtung in die positive z-Richtung (Drehung um die z-Achse)
Ebenso ist das Darstellungssystem X/Y definiert.
Bei Einsetzen von Werten in die Rotationswertzellen ist zu beachten, das hier keine obtischen Merkmale den Tiefeneindruck vermitteln (Schattenbildung, Struktierung von Vor-/Rüclseiten) ersichbar werden lassen, die 3D-Wirkung basiert Einzuig auf der Erwartung des Betrachters, in den Bildpunkten eine Spirale zu sehen.
Über die Eingabe in den Zellen G2:H4, G5 können, die Bemerkung des vorherigen Absatzes beachtend, die verschiedenen Versichebe und Drehwirkungen erkannt werden (Zu H6 siehe oben).
Die Berechnung der Darstellungskoordinaten X/Y geschieht auf einem besonderen Tabellenblatt. Die Rechenfolmeln und Ergebnisse stehen in Spalte F und G dieses Blattes und werden im Diagramm dargestellt.
In den Zellen B2:B4 und E2:E4 werden die Werte aus dem Eingabebereich der Tabelle "3D_Funktion" übernommen. Die benannten Zellen C2:D4 enthalten die Sinus- und Cosinuswerte (Zu dieser und weiteren Namensdefinitionen, sihe entsprechenden Einfügen-Dialog).
Die Matrizen T, RX, RY und RZ werden in den gleichnamig benannten Bereichen A7:D10, A13:D16, A19:D22 und A28:D28 geschrieben. Hier wären Vorzeichen- und Umordnungenumänderungen vorzunehmen, wenn die eingeführten Koordinatensysteme nicht nach den oben beschriebenen Definition aufgebaut sind.
Die Rotationsmatrix R (grün unterlegte Überschrift, mit falscher Bez. RZ statt R im Überschriftstext) wird mit den "geschachtelten" Matrixformel, sie über den Bereich R (A31:D40) als Matrixformel einzugeben ist,
=MMULT(MMULT(MMULT(T;RZ);RY);RX)
, deren Eingabe mit [STRG][[SHIFT][ENTER] abzuschließen ist.
Diese Formel kann ihrerseits als Matrix in eine rMatrixmultiplikation verwendet werden, um sie so mit der Projektionmatrix P zu multiplizieren. Diese Matrix P gestalltest sich hier einfach, kann aber durch besetzen der Zellen p(1,3), p(2,3) mir den negativen Cotangenswerten der schiefen Blickrichtung auf die Projektionsebene erweitert werden.
Soweit das Grundlegende, wiwe ich meine, dass es zur weiteren Bearbeitung der Matrixformeln notwendig ist.
Die ganze Aufgabe vereinfacht sich, wenn nur die Rotation RX und RY für die Darstellung von Interesse ist, denn in diesem Fall können die Summenprodukte direkt mit den trigonometrischen Relationswerrten sin und cos angeschrieben werden (Ausrechnung der Matrixmultiplikationen RZ * RY * RZ) :
X = x*cosAY*cosAZ + y*(-cosAX*sinAZ+sinAX*sinAY*cosAZ) + z*(sinAX*sinAZ+cosAX*sinAY*cosAZ)
Y = x*cosAY*cosAZ + y*(cosAX*cosAZ+sinAX*sinAY*sinAZ) + z*(-cosAZ*sinAX+cosAX*sinAY*sinAZ)
Diese Formeln können in die Zellen der Spalten fü X und Y eingesetzt werden (Namensdefinition wie beim der Arbeitsmappe):
|
|
Formeln der Tabelle | H2 : ='3D_Funktion'!$B2*cosAY*cosAZ+'3D_Funktion'!$C2*(-cosAX*sinAZ+sinAX*sinAY*cosAZ)+'3D_Funktion'!$D2*(sinAX*sinAZ+cosAX*sinAY*cosAZ)
I2 : ='3D_Funktion'!$B2*cosAY*sinAZ+'3D_Funktion'!$C2*(-cosAX*sinAZ-sinAX*cosAY)
|
|
|
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen Excel Jeanie HTML 3.0 Download
Beide Verfahren können auch in VBA umgesetzt werden, wo auf die "Hilfsbereich" (weitestgehend, möglicherweise vollständig) verzichtet werden kann, wenn man dort auch das Diagramm verwaltet.
Nun hoffe ich, dass mit diesen Hinweisen, Du Dein Vorhaben vorranbringen und ausbauen kannst.
Viel Erfolg!
Uwe
P.S.
Die Formelergebenisse können Fehler enthalten, obwohl ich meine, besondere Sorgfalt bei der Umformung habe walten lassen. Also bitte kritisch die Ansätze und Ergebnissee prüfen, denn diese Arbeit möchte ich mir jetzt nicht mehr zumuten.