Verfasst am: 08.06.2023, 20:55
Titel: Analytische Geometrie - Reflexion von Gerade auf Ebene
Hallo allerseits,
leider ist es mir nicht vergönnt, Matlab umfangreich zu beherrschen. Trotzdem bin ich gewillt, dass Programm für mein vorliegendes Problem anwenden zu wollen - allerdings benötige ich Eure Hilfe dazu.
Ich möchte mit Hilfe der analytischen Geometrie untersuchen, wie Lichtstrahlen auf einer Ebene reflektiert werden. Bevor ich aber soweit bin, habe ich erst noch grundsätzliche Fragen und hoffe, dass Ihr mir weiterhelfen könnt und wollt.
Zuerst möchte ich überhaupt eine Ebene in Matlab definieren und diese als Plot darstellen.
Hierzu habe ich folgenden Code mir aus dem Internet zusammengebastelt:
Zu (meiner) Erklärung:
Mit P1 bis P3 definiere ich die drei Punkte meiner Ebene. Anschließend bilde ich das Kreuzprodukt für den Normalenvektor, soweit noch klar.
was es genau mit dem Befehl
Das Problem ist in deinem Fall ein mathematisches: Du hast eine Ebene, die senkrecht auf der x-y-Ebene steht, da P1 und P3 genau übereinander liegen. In dem Fall ist es nicht sinnvoll, nach z aufzulösen. Alternativen für den Fall siehe z.B. hier
https://de.mathworks.com/matlabcent.....perpendicular-to-xy-plane
Wenn das hier nur ein Beispiel war und im "echten" Problem die Ebene nicht senkrecht auf der x-y - Ebene steht, solltest du deinen Code direkt verwenden können.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
syms x y z; %Einführen symbolischer Ebenenvariablen
P = [x,y,z]; %Beliebiger Punkt auf der PV Ebene
funct_PV = dot(normal_PV, P-PV1); %Skalarprodukt
plane_PV = solve(funct_PV, z);
Was ich nun nicht schaffe, ist die zweite Ebene (hier plane_HW) im Diagramm darzustellen. Ich habe diese über meinen vorletzten Befehl - der nun als Kommentar dargestellt ist - versucht einzubinden, aber dies führt zu Fehlern (ich habe in der Zeile davor den Schalter hold off natürlich auf hold on gesetzt.
Was muss ich tun, damit die zweite Ebene auch sichtbar wird?
Vielen Dank schon jetzt!
das Problem ist letztlich immer noch das gleiche:
plane_HW ist leer, und das liegt wiederum daran, dass funct_HW keine z-Komponente enthält. Wie man generell Ebenen plotten kann, die senkrecht zur x-y-Ebene stehen und deren Gleichung somit kein z enthalten, habe ich dir ja schon geschrieben.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Leider werde ich irgendwie nicht ganz schlau aus dem Plotten im Matlab.
Deine Befehle habe ich versucht bei mir anzuwenden. Leider - vielleicht habe ich es aber auch nicht verstanden - funktionieren diese ja nur dann, wenn die darzustellende Ebene tatsächlich senkrecht auf der X-Y-Ebene steht.
Nun will ich ja als finales Ergebnis einen allgemeinen Algorithmus haben, bei dem ein Lichtstrahl auf einer Ebene reflektiert wird und wiederum auf eine andere trifft. Die Lage der Ebenen kann senkrecht auf beispielsweise der X-Y-Ebene sein, muss es aber nicht.
Nun kann ich doch die Plot-Befehle nur schwerlich von der Lage der Ebene abhängig machen, oder bleibt mir hier nichts anderes übrig?
das Problem ist nicht so sehr das Plotten, sondern das Auflösen nach einer Variablen: wenn die Ebenengleichung kein z enthält, kann auch nicht nach z aufgelöst werden, und dann gibt es auch nichts zu plotten.
Zitat:
Nun kann ich doch die Plot-Befehle nur schwerlich von der Lage der Ebene abhängig machen, oder bleibt mir hier nichts anderes übrig?
Du kannst nach einer Möglichkeit suchen, die Ebene zu plotten, ohne nach einer Variablen aufzulösen. Ich würde mich aber für die Fallunterscheidung entscheiden.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.