Posts

Es werden Posts vom Januar, 2016 angezeigt.

Matlab: Kegel/Pfeil in 3D

Kegel/Pfeil in 3D(English) Um einen Kegel bzw. ein Pfeil im 3D darzustellen kann die Funktion:

function arrow3D(x,y,z,x2,y2,z2,length,thick,color)

 verwendet werden. Dabei ist "x2,y2,z2" der Endwert der Pfeiles, also die Spitze und "x,y,z" der Anfang des Vektors bzw. des Pfeiles. "length" gibt die Länge des Pfeils an und "thick" die Dicke. Mit "color" kann der Pfeil gefärbt werden. Wie die Funktion angewendet wird, kann im vorherigen Post nachgelesen werden.


Hier der Quellcode:


function arrow3D(x,y,z,x2,y2,z2,length,thick,color)

if nargin<5
    scale = 1;
end
x=-x;
y=-y;
x2=-x2;
y2=-y2;

vector2=[x2;y2;z2];
vector1=[x;y;z];
vector21=[x2-x;y2-y;z2-z];

u1=[x2-x;y2-y;z2-z];
u1=1/norm(u1)*u1;
u2=[1;0;0];
val=u1(1,1);
abstand=u1-val*u2;
if abstand==zeros(3,1)
    u2=[0;1;0];
end;
%Kreuzprodukt
u3(1,1)=u1(2,1)*u2(3,1)-u1(3,1)*u2(2,1);
u3(2,1)=u1(3,1)*u2(1,1)-u1(1,1)*u2(3,1);
u3(3,1)=u1(1,1)*u2(2,1)-u1(2,1)*u2(1,1);
u3=1/norm(u3)*u3;
%
u2(…

Matlab: Punkte und Vektoren in 3D-Plots

Bild
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);
arr…

Matlab: 3D Plot in kartesischem Koordinatensystem

Bild
3D Grid/Gitter(English) In diesem Post stell ich mein 3D-Gitter für Matlab vor. Dieses erzeugt in Abhängigkeit verschiedener Parameter ein Gitter in Matlab. Dieses kann einfach genutzt werden, um Vektoren, Ebenen und Geraden im dreidimensionalen Darzustellen.

function grid3D(x2,x,y2,y,z2,z,amountx,amounty,amountz,arrowtrue);

dabei gibt x2,y2,z2 die Startwerte der Achse und x,y,z die Endwerte der Achse an. Die anderen Variablen sind optional. Dabei gibt amountx, amounty, amountz die Anzahl der Achsenunterteilungen an. Wenn "arrowtrue = 1" ist, dann werden Pfeile an die Achsen gezeichnet. Diese sind jedoch nur für symmetrische Gitter gut zu gebrauchen.

Hier der Quellcode:
 function grid3D(x2,x,y2,y,z2,z,amountx,amounty,amountz,arrowtrue);

if nargin<7
    amountx = 4;
    amounty = 4;
    amountz = 4;
end
if nargin<10
    arrowtrue = 0;
end

xrange = x2-x;
yrange = y2-y;
zrange = z-z2;

zq = 0:1:amountz;
yq = 0:1:amounty;
xq = 0:1:amountx;

hold on;
set(gca,'visible'…