openjscad-aurora-webapp
42 строки · 1.0 Кб
1// title: Four to three (sides)
2// author: Eduard Bespalov
3// license: MIT License
4// description: testing solidFromSlices()
5
6function getParameterDefinitions() {7return [8{ name: 'radius', caption: 'Radius:', type: 'float', default: 10 },9{ name: 'height', caption: 'Height:', type: 'float', default: 35 },10{ name: 'twist', caption: 'Twist:', type: 'int', default: 90}11];12}
13
14function main(params) {15var thing = thingTwisted(params.radius, params.height, params.twist);16return thing;17}
18
19function thingTwisted(radius, height, twistangle) {20twistangle = twistangle || 0;21
22var flatBottom = CSG.Polygon.createFromPoints([23[-radius, -radius, 0],24[radius, -radius, 0],25[radius, radius, 0]26]);27
28var thing = flatBottom.solidFromSlices({29numslices: height30,callback: function(t) {31var coef = 1 - t;32var h = height * t;33return CSG.Polygon.createFromPoints([34[-radius, -radius, h],35[radius, -radius, h],36[radius * coef, radius, h],37[-radius * coef, radius, h]38]).rotate([0,0,0], [0,0,1], twistangle * t);39}40});41return thing;42}
43