LTE5 IMBUTO (Code Link)
THE LTE5 IMBUTO is a very elegant Floor lamp whith a base in black painted cast iron, a stem in polished brass and cone-shaped reflector in metallic grey aluminium.
I started drawing the funnel and the light inside. I used BEZIER-based functions made by me.
semicircle_a = function(x1,y1,z,tx,ty,tz1,tz2){
semix = x1/2
semia = BEZIER(S1)([[tx+semix,ty,z+tz1],[tx+semix,ty+y1,z+tz2],[tx-semix,ty+y1,z+tz2],[tx-semix,ty,z+tz1]])
return semia
}
semicircle_b = function(x1,y1,z,tx,ty,tz1,tz2){
semix = x1/2
semib = BEZIER(S1)([[tx+semix,ty,z+tz1],[tx+semix,-y1+ty,z+tz2],[tx-semix,-y1+ty,z+tz2],[tx-semix,ty,z+tz1]])
return semib
}
var SEMISPHERE = function (r) {
var domain = DOMAIN([[0, PI], [0, PI]])([50,50]);
var mapping = function (v) {
var a = v[0];
var b = v[1];
return [r*SIN(a)*COS(b), r/2*SIN(a)*SIN(b), r*COS(a)];
};
var model = MAP(mapping)(domain);
return model;
};
[..]
curve1a_funnel = semicircle_a(3,2,0,0,0,0,0)
curve1b_funnel = semicircle_b(3,2,0,0,0,0,0)
[..]
map1_funnel = MAP(BEZIER(S2)([curve1a_funnel,curve2a_funnel]))(domain2)
map2_funnel = MAP(BEZIER(S2)([curve1b_funnel,curve2b_funnel]))(domain2)
[..]
funnel = STRUCT([map1_funnel,..,map5_funnel])
Then i draw the long gold body e and the base. I re-used the functions i wrote before.

curve1a_body = semicircle_a(0.2,0.15,18,0,0,0,0) curve1b_body = semicircle_b(0.2,0.15,18,0,0,0,0) curve2a_body = semicircle_a(2.2,1.3,18,0,0,0,0) curve2b_body = semicircle_b(2.2,1.3,18,0,0,0,0) [..] map1_body = COLOR([255/255,193/255,37/255])(MAP(BEZIER(S2)([curve3a_funnel,curve1a_body]))(domain2)) map2_body = COLOR([255/255,193/255,37/255])(MAP(BEZIER(S2)([curve3b_funnel,curve1b_body]))(domain2)) [..] body = STRUCT([map1_body,..,map6_body])
These are the final LTE5 IMBUTO model and the original model.