%%%% cubd_06.ldf
%%%% Created by Laurence D. Finston (LDF) Fri Dec 16 19:37:47 CET 2005
%% * (1) Copyright and License.
%%%% This file is part of GNU 3DLDF, a package for three-dimensional drawing.
%%%% Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Free Software Foundation
%%%% GNU 3DLDF is free software; you can redistribute it and/or modify
%%%% it under the terms of the GNU General Public License as published by
%%%% the Free Software Foundation; either version 3 of the License, or
%%%% (at your option) any later version.
%%%% GNU 3DLDF is distributed in the hope that it will be useful,
%%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
%%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
%%%% GNU General Public License for more details.
%%%% You should have received a copy of the GNU General Public License
%%%% along with GNU 3DLDF; if not, write to the Free Software
%%%% Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
%%%% GNU 3DLDF is a GNU package.
%%%% It is part of the GNU Project of the
%%%% Free Software Foundation
%%%% and is published under the GNU General Public License.
%%%% See the website http://www.gnu.org
%%%% for more information.
%%%% GNU 3DLDF is available for downloading from
%%%% http://www.gnu.org/software/3dldf/LDF.html.
%%%% Please send bug reports to Laurence.Finston@gmx.de
%%%% The mailing list help-3dldf@gnu.org is available for people to
%%%% ask other users for help.
%%%% The mailing list info-3dldf@gnu.org is for the maintainer of
%%%% GNU 3DLDF to send announcements to users.
%%%% To subscribe to these mailing lists, send an
%%%% email with ``subscribe '' as the subject.
%%%% The author can be contacted at:
%%%% Laurence D. Finston
%%%% c/o The Free Software Foundation, Inc.
%%%% 51 Franklin St, Fifth Floor
%%%% Boston, MA 02110-1301
%%%% USA
%%%% Laurence.Finston@gmx.de
%% *** (3) The intersection of a `cuboid' and a `plane'. It is a `polygon'.
%% LDF 2005.12.16.
verbatim_metapost "verbatimtex \magnification=\magstep5 etex";
pickup pencircle scaled (.75mm, .75mm);
pen dot_pen;
dot_pen := pencircle scaled (1.5mm, 1.5mm);
focus f;
set f with_position (-10, 15, -30) with_direction (-10, 15, 100) with_distance 20;
picture save_picture;
beginfig(1);
cuboid c;
cw := 20;
ch := 16;
cd := 10;
rw := cw + 20;
rd := cd + 14;
c := unit_cuboid scaled (cw, ch, cd);
rectangle r;
r := unit_rectangle scaled (rw, 0, rd) rotated (70, 30) shifted (4, 1, 4);
transform t;
t := identity rotated (15, 15);
r *= c *= t;
draw c;
draw r with_color red;
plane q;
q := (plane) r;
polygon poly;
poly := c intersection q;
draw poly with_color blue;
point p[];
for i = 0 upto 5:
p[i] := get_point (i) poly;
drawdot p[i] with_color green with_pen dot_pen;
endfor;
label.lrt("$i_0$", p0);
label.lft("$i_1$", p1);
label.lft("$i_2$", p2);
label.top("$i_3$", p3);
label.rt("$i_4$", p4);
label.lft("$i_5$", p5 shifted -.375);
save_picture := current_picture;
endfig with_focus f no_sort;
point label_pt;
label_pt := (0, -10);
beginfig(2);
output save_picture with_projection parallel_x_z with_factor .75;
%label("Parallel Projection, X-Z Plane", label_pt shifted 6);
endfig with_projection parallel_x_y;
beginfig(3);
output save_picture with_projection parallel_x_y with_factor .75;
%label("Parallel Projection, X-Y Plane", label_pt);
endfig with_projection parallel_x_y;
beginfig(4);
output save_picture with_projection parallel_z_y with_factor .75;
%label("Parallel Projection, Z-Y Plane", label_pt);
endfig with_projection parallel_x_y;
verbatim_metapost "end";
end;