summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/metapost/mp3d/cube10.mp
blob: 7cc6cb787317d58a844b5f9f01f43d9fcba02d8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
% D. Roegel January 2001
% roegel@loria.fr
% Oblique projections of the cube

input 3danim
output_res:=72;
drawing_scale:=2cm;

%set_plane_(projection_plane)(point_null,vec_I,vec_J);
set_plane_(projection_plane)(point_null,vec_I,vec_K);

new_plane_(horizontal_plane)(point_null,vec_I,vec_J);

vardef def_C(expr inst)=
  new_obj_points(inst,8); % 8 points
  set_C_points(inst);
enddef;

vardef set_C_points(expr inst)=
  set_point(1)(0,0,0);set_point(2)(0,0,1);
  set_point(3)(0,1,0);set_point(4)(0,1,1);
  set_point(5)(1,0,0);set_point(6)(1,0,1);
  set_point(7)(1,1,0);set_point(8)(1,1,1);
enddef;

vardef draw_C(expr inst)=
  draw_line(3,7);draw_lines(8,7,5);
  draw_line(2,6);draw_line(4,8);
  draw_lines(5,6,8);draw_lines(4,3);draw_lines(2,4);
  drawoptions(dashed evenly);
  draw_lines(1,2);draw_lines(3,1);draw_line(1,5);
  drawoptions();
enddef;

assign_obj("cube","C");
point_of_view_obj("cube",8,Obs_phi);

oblique_projection(horizontal_plane)(pnt_obj("cube",8),CAVALIER,30,50); % 30

beginfig(100);
  Obs_dist:=2;
  draw_obj("cube"); 
endfig;
  
oblique_projection(horizontal_plane)(pnt_obj("cube",8),CABINET,30,20); % 30
  
beginfig(101);
  Obs_dist:=2;
  draw_obj("cube"); 
endfig;

oblique_projection(horizontal_plane)(pnt_obj("cube",8),30,20,20); % 20

beginfig(102);
  Obs_dist:=2;
  draw_obj("cube"); 
endfig;

new_point(hp);
set_point_(hp)(0,1,1);

set_plane_(horizontal_plane)(hp,vec_I,vec_K);
% such a plane and a second angle of 90 degrees produces a
% ``planometric'' view.
oblique_projection(horizontal_plane)(pnt_obj("cube",8),30,90,20); % 20

vardef draw_C(expr inst)=
  draw_lines(8,7);draw_line(3,7);draw_lines(7,5); 
  draw_lines(1,2);draw_lines(3,1);
  draw_line(1,5);
  draw_lines(4,3);draw_lines(2,4);draw_line(4,8);
  drawoptions(dashed evenly);
  draw_lines(5,6);
  draw_line(2,6);draw_lines(6,8);
  drawoptions();
enddef;

beginfig(103);
  Obs_dist:=2;
  draw_obj("cube"); 
endfig;

end.