Matlab: Punkte und Vektoren in 3D-Plots

Punkte und Vektoren in 3D-Plots

(English) Diese Matlabfunktion ist für das im vorherigen Post dargestellte 3D-Gitter. Dabei kann mit folgender Funktion ein Vektor bzw. ein Punkt im 3D-Plot erstellt werden.

function punkt3D(x1,y1,z1,x2,y2,z2,sign,name,color,dx,dy,dz,true)

Dabei gibt "x1,y1,z1" dem Startpunkt des Vektors und "x2,y2,z2" dem Endpunkt. Dabei kann mit "sign" das Zeichen am Endpunkt bestimmt werden. Mit "name" wird des Punkt benannt und "color färbt die Vektor.
Ist der Name nicht an der richtigen Stelle, kann dieser mit "dx,dy,dz" entsprechend verschoben werden. Für die Variable "true = 1" wird die Projektion des Vektors auf die 3 Ebenen angeschaltet.
Als Beispiel erhält man folgendes Bild mit diesem Quellcode:

grid3D(0,2,0,2,-2,2,4,4,4);
punkt3D(0,0,0,2,2,2,'.','P(2|2|2)',colors('orange'));
punkt3D(0,0,0,1,0.5,1,'arrow','Q(1|0.5|1)',colors('brightblue'),0,0,0.4);
arrow3D(1.5,1.5,0,1.5,1,0,0.4,0.2,'k');
punkt3D(0,0,0,0,1,1,'arrow','R(0|1|1)',colors('darkgreen'),0,0,0.4);

 Hierfür wird jedoch die Funktion arrow3D(...) gebraucht, da für "sign = 'arrow' " wie in dem Schaubild ein Pfeil ans Ende des Vektors gezeichnet wird. Dies kann optional auch einfach im folgenden Quellcode gelöscht werden.

Hier der Quellcode:
function punkt3D(x1,y1,z1,x2,y2,z2,sign,name,color,dx,dy,dz,true)

if nargin<10
    dx=0;
    dy=0;
    dz=0;
end
if nargin<9
    color='black';
end
if nargin>12
    plot3([0 -x2],[-y2 -y2],[z2 z2],'--','Color','[0.8 0.8 0.8');
    plot3([-x2 -x2],[0 -y2],[z2 z2],'--','Color','[0.8 0.8 0.8');
    plot3([-x2 -x2],[-y2 -y2],[0 z2],'--','Color','[0.8 0.8 0.8');
end

if strcmp(sign,'arrow') == 1
    xrange = x2-x1;
    yrange = y2-y1;
    zrange = z2-z1;
    arrow3D(x2-xrange/7,y2-yrange/7,z2-zrange/7,x2,y2,z2,1,1,color);
end
if strcmp(sign,'arrow') == 0
    p2 = plot3(-x2, -y2, z2,sign,'Color',color,'Markersize',7);
end
p1 = plot3([-x1 -x2],[-y1 -y2],[z1 z2]);
p3 = text(-x2-x2/10-dx, -y2-y2/7-dy, z2+z2/10+dz,name);
set([p1 p3],'Color',color);

Kommentare

Beliebte Posts aus diesem Blog

Matlab: Polarplot Achsenbeschriftungs- und Skalierfunktion

Matlab: GUI Interface

Matlab: 3D Plot in kartesischem Koordinatensystem