Floor_map (one 3d storey of a house)

Help Contents Examples Floor_map (one 3d storey of a house)
Fern (3d) Flying Turtles (3d)

Floor_map (one 3d storey of a house)

This 3d spaghetti-code drawing example illustrates two things:

1st) how to draw one storey of a house with styled parallelograms

2nd) why structural programming is neccessary.

You`ll understand (2) when you try to expand or change the house! As a suggestion, you can try to introduce some structure.

run "graphix

make "t 0

to changeview
	make "t :t+1/3
	lookat vector 7*(cos :t) 7*(sin :t) 10 vector 1.5 2.32 0 vector 0 0 1
end
                                                           
setmatrix [[ -1 0 0 0][0 1 0 0][0 0 1 0][0 0 0 1]]

make "floor (styled 
	(paralelogram vector 0.01 0.01 0.01   3.10 5 0.1) 
	(set "color rgb_ 1/5  1/5  1/5  "mode 2 "light "true)
)
make "w rgb_  4/5  4/5  4/5
make "wi rgb_ 1/3  1/2  1
make "do rgb_ 0.7  0  0

make "wall_ld (styled 
	(paralelogram vector 0 0 0    0.05 5 0.5) 
	(set "color :w "mode 2 "light "true)
)
make "wall_lm (styled 
	(paralelogram vector 0 0 0.5    0.05 4.34 0.5) 
	(set "color :w "mode 2 "light "true)
)
make "wall_lm1 (styled
	(paralelogram vector 0 4.7 0.5    0.05 0.31 0.5) 
	(set "color :w "mode 2 "light "true)
)
make "wall_lu (styled 
	(paralelogram vector 0 0 1    0.05 5.01 0.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_2 (styled 
	(paralelogram vector 0 5 0    1.44 0.05 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_2a (styled 
	(paralelogram vector 1.88 4.64 0    1.25 0.05 0.5) 
	(set "color :w "mode 2 "light "true)
)
make "wall_2aa (styled 
	(paralelogram vector 1.88 4.64 1    1.25 0.05 0.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_2b (styled 
	(paralelogram vector 1.41 5.00 0    1.71 0.05 0.5) 
	(set "color :w "mode 2 "light "true)
)
make "wall_2c (styled 
	(paralelogram vector 1.41 4.64 0    0.05 0.38 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_2d (styled 
	(paralelogram vector 3.12 4.64 0    0.05 0.38 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_2f (styled 
	(paralelogram vector 1.41 4.64 1    0.48 0.05 0.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_3a (styled 
	(paralelogram vector 3.12 2.84 0    0.05 1.8 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_3b (styled 
	(paralelogram vector 3.12 0 0    0.05 2.36 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_3c (styled 
	(paralelogram vector 3.12 2.36 1    0.05 0.5 0.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_4a (styled 
	(paralelogram vector 0 0 0    1.41 0.05 0.5) 
	(set "color :w "mode 2 "light "true)
)
make "wall_4b (styled 
	(paralelogram vector 1.41 0 0    1.71 0.05 0.2)
	(set "color :w "mode 2 "light "true)
)
make "wall_5a (styled 
	(paralelogram vector 0 3.4 0    0.94 0.05 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_5b (styled 
	(paralelogram vector 0 2.54 0    0.94 0.05 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_5c (styled 
	(paralelogram vector 0 1.9 0    0.94 0.05 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_5d (styled 
	(paralelogram vector 0.38 1.9 0    0.05 0.3 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_5e (styled 
	(paralelogram vector 0 1.23 0     0.28 0.05 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_5f (styled 
	(paralelogram vector 0 0.38 0     0.94 0.05 0.5)
	(set "color :w "mode 2 "light "true)
)
make "wall_5g (styled 
	(paralelogram vector 0 0.38 1     1.41 0.05 0.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_6a (styled 
	(paralelogram vector 1.41 0 0     0.05 0.56 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_6b (styled 
	(paralelogram vector 1.41 1.13 0     0.05 1.25 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_6c (styled 
	(paralelogram vector 1.41 0.56 1     0.05 0.57 0.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_6d (styled 
	(paralelogram vector 1.41 2.84 0     0.05 0.2 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_6e (styled 
	(paralelogram vector 1.41 3.37 0     0.05 1.28 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_6f (styled 
	(paralelogram vector 1.41 3.37 0     0.05 1.28 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_6g (styled 
	(paralelogram vector 1.41 3.02 1     0.05 0.38 0.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_6h (styled 
	(paralelogram vector 0.93 3.4 1     0.49 0.05 0.2)
	(set "color :w "mode 2 "light "true)
)
make "wall_6i (styled 
	(paralelogram vector 0.94 1.9 1     0.05 1.54 0.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_6j (styled 
	(paralelogram vector 0.94 1.9 0     0.05 0.22 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_6k (styled 
	(paralelogram vector 0.94 2.36 0     0.05 0.51 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_6l (styled 
	(paralelogram vector 0.94 3.12 0     0.05 0.33 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_7a (styled 
	(paralelogram vector 1.41 3.03 0     0.88 0.05 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_7b (styled 
	(paralelogram vector 2.26 2.82 0     0.88 0.05 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_7c (styled 
	(paralelogram vector 2.26 2.83 0     0.05 0.24 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_7d (styled 
	(paralelogram vector 1.41 2.36 0     0.38 0.05 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_7e (styled 
	(paralelogram vector 2.18 2.36 0     0.95 0.05 1.2) 
	(set "color :w "mode 2 "light "true)
)
make "wall_7f (styled 
	(paralelogram vector 1.75 2.36 1     0.5 0.05 0.2) 
	(set "color :w "mode 2 "light "true)
)

make "wind_1 (styled 
	(paralelogram vector 1.87 4.64 0.5     1.25 0.05 0.5) 
	(set "color :wi "mode 2 "pattern [oX Xo])
)
make "wind_2 (styled 
	(paralelogram vector 0 4.34 0.5     0.05 0.37 0.5) 
	(set "color :wi "mode 2 "pattern [oX Xo])
)
make "wind_3 (styled 
	(paralelogram vector 0.01 0 0.5     1.41 0.05 0.7) 
	(set "color :wi "mode 2 "pattern [oX Xo])
)
make "wind_4 (styled 
	(paralelogram vector 0.01 0.38 0.5     0.95 0.05 0.5)
	(set "color :wi "mode 2 "pattern [oX Xo])
)
make "wind_5 (styled 
	(paralelogram vector 1.44 0 0.2     1.68 0.05 1) 
	(set "color :wi "mode 2 "pattern [oX Xo])
)
make "door_1 (styled 
	(paralelogram vector 0.95 0.37 0     0.48 0.05 1) 
	(set "color :do "mode 2 "pattern [Xo oX])
)
make "door_2 (styled 
	(paralelogram vector 0.95 1.88 0     0.48 0.05 1) 
	(set "color :do "mode 2 "pattern [Xo oX])
)
make "door_2a (styled 
	(paralelogram vector 0.95 1.9 1     0.48 0.05 0.2) 
	(set "color :w "mode 2 "light "true)
)
make "door_3 (styled 
	(paralelogram vector 3.12 2.37 0     0.05 0.45 1) 
	(set "color :do "mode 2 "pattern [Xo oX])
)
make "door_4 (styled
	(paralelogram vector 1.78 2.35 0     0.4 0.05 1)
	(set "color :do "mode 2 "pattern [Xo oX])
)
make "door_5 (styled 
	(paralelogram vector 0.94 2.11 0     0.05 0.26 1) 
	(set "color :do "mode 2 "pattern [Xo oX])
)
make "door_6 (styled 
	(paralelogram vector 0.94 2.86 0     0.05 0.26 1) 
	(set "color :do "mode 2 "pattern [Xo oX])
)
make "door_7 (styled 
	(paralelogram vector 1.41 3.08 0     0.05 0.3 1) 
	(set "color :do "mode 2 "pattern [Xo oX])
)
make "door_8 (styled 
	(paralelogram vector 0.98 3.4 0     0.45 0.05 1) 
	(set "color :do "mode 2 "pattern [Xo oX])
)
make "door_9 (styled 
	(paralelogram vector 1.44 4.65 0     0.45 0.05 1) 
	(set "color :do "mode 2 "pattern [Xo oX])
)

repeat 100000
[
	changeview
]

Fern (3d) Flying Turtles (3d)