View on GitHub

Final-project

Michele Galli

Download this project as a .zip file Download this project as a tar.gz file

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.

lte5imbuto-js

  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.

lte5imbuto-js

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.