function cube_d3


%Drehachsenkoordinaten Cube

for h=0.01:0.01:1
    display('next step')
    d=input('prompt')
xyz=[0.01,0.01,1];

yz=[0,xyz(2),xyz(3)];
xz=[xyz(1),0,xyz(3)];
xy=[xyz(1),xyz(2),0];

%Zeichnen des Drehachsenmittelpunktes
plot3(xyz(1),xyz(2),xyz(3),'*');
hold on

%Linksdrehung
%XeYeZe=[0.01-h,0.01,1-h];
%Rechtsdrehung
XeYeZe=[h,0.01,1-h];

YeZe=[0,XeYeZe(2),XeYeZe(3)];
XeZe=[XeYeZe(1),0,XeYeZe(3)];
XeYe=[XeYeZe(1),XeYeZe(2),0];

% Rotationsmatrix
% Yaw = Rotation um z Achse       |          z|
% Roll = Rotation um die y Achse  |           |_ _y
% Nick = Rotation um x Achse      |         x/

%Skalarprodukt

yz_betr=sqrt(yz(1)^2 + yz(2)^2 + yz(3)^2);
YeZe_betr=sqrt(YeZe(1)^2+YeZe(2)^2+YeZe(3)^2);

xz_betr=sqrt(xz(1)^2 + xz(2)^2 + xz(3)^2);
XeZe_betr=sqrt(XeZe(1)^2+XeZe(2)^2+XeZe(3)^2);

xy_betr=sqrt(xy(1)^2 + xz(2)^2 + xz(3)^2);
XeYe_betr=sqrt(XeYe(1)^2+XeYe(2)^2+XeYe(3)^2);

alpha=acos((yz*YeZe')/(yz_betr*YeZe_betr));
beta=acos((xz*XeZe')/(xz_betr*XeZe_betr));
gamma=acos((xy*XeYe')/(xy_betr*XeYe_betr));

%Umrechnung in Bogenmaß
Pi=3,1415926;
w_alpha=alpha*180/Pi;
w_beta=beta*180/Pi;
w_gamma=gamma*180/Pi;

rx = [1 0 0;0 cos(alpha) -sin(alpha);0 sin(alpha) cos(alpha)];
ry = [cos(beta) 0 sin(beta);0 1 0;-sin(beta) 0 cos(beta)];
rz = [cos(gamma) -sin(gamma) 0;sin(gamma) cos(gamma) 0; 0 0 1];
rotation = rx*ry*rz;


% Ecken Cube , siehe Hilfe zu patch und Multifaceted Patches
this_EdgeLength = 3;
d = this_EdgeLength/2;
%Eckenpos.        1   2   3   4   5   6   7   8
vertices(:,1,:)=[XeYeZe(1)-d;XeYeZe(1)+d;XeYeZe(1)+d;XeYeZe(1)-d;XeYeZe(1)-d;XeYeZe(1)+d;XeYeZe(1)+d;XeYeZe(1)-d];
vertices(:,2,:)=[XeYeZe(2)-d;XeYeZe(2)-d;XeYeZe(2)+d;XeYeZe(2)+d;XeYeZe(2)-d;XeYeZe(2)-d;XeYeZe(2)+d;XeYeZe(2)+d];
vertices(:,3,:)=[XeYeZe(3)-d;XeYeZe(3)-d;XeYeZe(3)-d;XeYeZe(3)-d;XeYeZe(3)+d;XeYeZe(3)+d;XeYeZe(3)+d;XeYeZe(3)+d];

for m=1:8
    vertices(m,:,:)=rotation*vertices(m,:,:)';
end

% Flächen Cube, siehe Hilfe zu patch und Multifaceted Patches
faces = [1 2 6 5;2 3 7 6;3 4 8 7;4 1 5 8;1 2 3 4;5 6 7 8];

% Zeichne Cube
    patch('Vertices',vertices,'Faces',faces,'FaceAlpha',0.5,'FaceColor','flat','FaceVertexCData',hsv(6))

%xyz=[XeYeZe(1),XeYeZe(2),XeYeZe(3)];

%ModelkoordinatenSystem X Y Z Achse
line([-5 5],[0.01 0.01],[1 1],'linewidth',1,'color',[0,0,0]);
line([0.01 0.01],[-5 5],[1 1],'linewidth',1,'color',[0,0,0]);
line([0.01 0.01],[0.01 0.01],[-5 5],'linewidth',1,'color',[0,0,0]);

%WeltkoordinatenSystem
%axis equal
axis([-5,5,-5,5,-5,5])
xlabel('X-Achse')
ylabel('Y-Achse')
zlabel('Z-Achse')
grid on
hold off
end


