obj1

place objects on a checkerboard platform

Contents

init

close all; clear

% choose between openl software and opengl hardware
% on my system, hardware has a funny semi-transparency effect

opengl software

construct the platform

% Set the limits and select a view
d = 40;
ax = axes('XLim',[-d d],'YLim',[-d d],'ZLim',[-1 20]);
view(3); grid on; axis equal

% Set the renderer to ZBuffer or OpenGL
set(gcf,'Renderer','opengl');
% set(gcf,'Renderer','zbuffer');

ht = target_board();


% Create group object and parent surfaces
t1 = hgtransform('Parent',ax);
set(ht,'Parent',t1);
% Rz = makehgtform('zrotate',-pi/2);
% set(t1,'Matrix',Rz);

xlabel('x axis'); ylabel('y axis'); zlabel(' z axis');
set(gcf,'Position',[100 100 800 640]);

place a raisinbran box

hd = raisinbran();
t2 = hgtransform('Parent',ax);
set(hd,'Parent',t2);
Ry = makehgtform('xrotate',pi/2);
Rz = makehgtform('zrotate',-20*pi/180);
Txy = makehgtform('Translate',[10 8 0]);
set(t2,'Matrix',Txy*Rz*Ry);
drawnow

place a photocube

hc = cube();

%set(h,'Clipping','off')

% Create group object and parent surfaces
t3 = hgtransform('Parent',ax);
set(hc,'Parent',t3)
Sxy = makehgtform('scale',12);
Rz = makehgtform('zrotate',120*pi/180);
T1 = makehgtform('Translate',[0 0 0.5]);
T2 = makehgtform('Translate',[-18 12 0]);
set(t3,'Matrix',T2*Rz*Sxy*T1);
drawnow;

replicate the cube

t4 = hgtransform('Parent',ax);


% Parent objects and copy of objects to respective groups
h2 = copyobj(hc,t2);
set(h2,'Parent',t4)

% Translate and rotate the new cube
Rz2 = makehgtform('zrotate',-75*pi/180);
T3 = makehgtform('translate',[-12 -15 0]);
set(t4,'Matrix',T3*Rz2*Sxy*T1)
drawnow

perspective view

camproj('Perspective');
campos([-60 -100 70]);
camva(25);
axis off
xlabel('');ylabel('');zlabel('');
drawnow

save image

% set(gcf,'Color',[1 1 1]*0.9);
f = getframe(gcf);
nf = 1;
filename = ['image_' int2str(nf) '.jpg'];
imwrite(f.cdata,filename);