openjscad-aurora-webapp
67 строк · 1.4 Кб
1// title: Non Affine Transformation
2// author: Eduard Bespalov
3// license: MIT License
4// description: testing solidFromSlices()
5
6function main(params) {7var radius = 20,8height = 60,9vec = new CSG.Vector3D(0, radius, 0),10angle;11
12angle = 360 / 7;13var pol7 = CSG.Polygon.createFromPoints([14vec,15vec.rotateZ(1 * angle),16vec.rotateZ(2 * angle),17vec.rotateZ(3 * angle),18vec.rotateZ(4 * angle),19vec.rotateZ(5 * angle),20vec.rotateZ(6 * angle)21]);22
23angle = 360 / 6;24var hex = CSG.Polygon.createFromPoints([25vec,26vec.rotateZ(1 * angle),27vec.rotateZ(2 * angle),28vec.rotateZ(3 * angle),29vec.rotateZ(4 * angle),30vec.rotateZ(5 * angle)31]);32
33angle = 360 / 5;34var pent = CSG.Polygon.createFromPoints([35vec,36vec.rotateZ(1 * angle),37vec.rotateZ(2 * angle),38vec.rotateZ(3 * angle),39vec.rotateZ(4 * angle)40]);41
42angle = 360 / 4;43var square = CSG.Polygon.createFromPoints([44vec,45vec.rotateZ(1 * angle),46vec.rotateZ(2 * angle),47vec.rotateZ(3 * angle)48]);49
50angle = 360 / 3;51var triag = CSG.Polygon.createFromPoints([52vec,53vec.rotateZ(1 * angle),54vec.rotateZ(2 * angle)55]);56
57var polygons = [pol7, hex, pent, square, triag, pol7, hex, pent, square, triag];58
59return triag.solidFromSlices({60numslices: polygons.length,61callback: function(t, slice) {62return polygons[slice].translate (63[0,0,height * t]64);65}66});67}
68