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
|
# origin
def O (0,0,0)
def cube {
polygon[linecolor=blue,fillcolor=red]( 1,-1,-1)( 1, 1,-1)( 1, 1, 1)( 1,-1, 1)
polygon[linecolor=blue,fillcolor=green](-1,-1, 1)(-1, 1, 1)(-1, 1,-1)(-1,-1,-1)
polygon[linecolor=blue,fillcolor=blue](-1,-1,-1)( 1,-1,-1)( 1,-1, 1)(-1,-1, 1)
polygon[linecolor=blue,fillcolor=yellow](-1, 1, 1)( 1, 1, 1)( 1, 1,-1)(-1, 1,-1)
polygon[linecolor=blue,fillcolor=cyan](-1,-1, 1)( 1,-1, 1)( 1, 1, 1)(-1, 1, 1)
polygon[linecolor=blue,fillcolor=magenta](-1, 1,-1)( 1, 1,-1)( 1,-1,-1)(-1,-1,-1)
}
def rawcubes {
{cube}
put { translate([2.5,0,0]) } {cube}
put { translate([0,0,-2.5]) } {cube}
put { translate([0,0,2.5]) } {cube}
put { translate([-2.5,0,0]) } {cube}
}
def ofs -1.5
#def ofs -2.1
def cubeviews {
put { rotate(0, (O), [0,1,0]) then translate([0,0*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
put { rotate(5, (O), [0,1,0]) then translate([0,1*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
put { rotate(10, (O), [0,1,0]) then translate([0,2*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
put { rotate(15, (O), [0,1,0]) then translate([0,3*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
put { rotate(20, (O), [0,1,0]) then translate([0,4*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
put { rotate(25, (O), [0,1,0]) then translate([0,5*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
put { rotate(30, (O), [0,1,0]) then translate([0,6*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
put { rotate(35, (O), [0,1,0]) then translate([0,7*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
put { rotate(40, (O), [0,1,0]) then translate([0,8*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
put { rotate(45, (O), [0,1,0]) then translate([0,9*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
put { rotate(50, (O), [0,1,0]) then translate([0,10*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
put { rotate(55, (O), [0,1,0]) then translate([0,11*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
put { rotate(60, (O), [0,1,0]) then translate([0,12*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
put { rotate(65, (O), [0,1,0]) then translate([0,13*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
put { rotate(70, (O), [0,1,0]) then translate([0,14*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
put { rotate(75, (O), [0,1,0]) then translate([0,15*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
put { rotate(80, (O), [0,1,0]) then translate([0,16*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
put { rotate(85, (O), [0,1,0]) then translate([0,17*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
put { rotate(90, (O), [0,1,0]) then translate([0,18*ofs,0]) then view((3, 5, 10), [-3, -5, -10]) then perspective(10) } {rawcubes}
}
def dstest {
def ts polygon (-1,-1,1)(1,-1,-1)(1,1,-1)(-1,1,1)
{ts}
def ofsv [.2,0,-.1]
put { translate( [ofsv] ) } {ts}
put { translate( 2*[ofsv] ) } {ts}
put { translate( 3*[ofsv] ) } {ts}
put { translate( 4*[ofsv] ) } {ts}
put { translate( 5*[ofsv] ) } {ts}
}
#put { view((10,2,10), [-1,-2,-5]) } {dstest}
put { scale(1) } {cubeviews}
def cross {
polygon[fillcolor=red] (-10,-1,-10)(10,-1,10)(10,1,10)(-10,1,-10)
polygon[fillcolor=blue] (-10,-1,10)(10,-1,-10)(10,1,-10)(-10,1,10)
}
# put { view( (0,5,10) ) then scale(.1) } {cross}
def edgeon {
polygon[fillcolor=red] (0,0,1)(10,0,1)(10,0,-1)(0,0,-1)
polygon[fillcolor=blue](9,-1,-1.1)(11,-1,-1.1)(11,1,-1.1)(9,1,-1.1)
}
# put { view( (4,.1,10) ) then scale(.3) } {edgeon}
def linepolyintersect {
polygon[fillcolor=red]( 1,-1,-1)( 1, 1,-1)( 1, 1, 1)( 1,-1, 1)
line[linewidth=1pt](0,0)(2,1,.5)
line[linewidth=1pt](0,0)(2,1,0)
line[linewidth=1pt](0,0)(2,-1,0)
line[linewidth=1pt](0,0)(3,2.99,0)
}
# put { view( (1, 1, 10) ) then scale(3) } {linepolyintersect}
global { set [linewidth=0pt] }
|