xxxxxxxxxx
55
var a = 1,
b = 1;
var m1 = 0,
m2 = 0;
var n1 = 0,
n2 = 0,
n3 = 0;
var co = 0;
var m1Slider, m2Slider, n1Slider, n2Slider, n3Slider, scaleSlider;
function setup() {
createCanvas(600, 600, WEBGL);
colorMode(HSB);
strokeWeight(0);
m1Slider = createSlider(0, 20, 3);
m2Slider = createSlider(0, 20, 3);
n1Slider = createSlider(0, 20, 2, 0.5);
n2Slider = createSlider(0, 20, 5, 0.5);
n3Slider = createSlider(0, 20, 7, 0.5);
scaleSlider = createSlider(1, 100, 2.2, 0.2);
}
function draw() {
co = 0;
orbitControl();
rotateY(0.5);
rotateZ(millis()/1000);
m1 = m1Slider.value();
m2 = m2Slider.value();
n1 = n1Slider.value();
n2 = n2Slider.value();
n3 = n3Slider.value();
a = b = scaleSlider.value();
background('#66CCCC');
beginShape();
for (var i = -PI; i < PI; i += 0.1) {
fill(co, 255, 255);
for(var j = -HALF_PI; j < HALF_PI; j +=0.1){
var r1 = pow(pow(abs(cos(m1 * i / 4) / a), n2) + pow(abs(sin(m2 * i / 4) / b), n3), -(1 / n1));
var r2 = pow(pow(abs(cos(m1 * j / 4) / a), n2) + pow(abs(sin(m2 * j / 4) / b), n3), -(1 / n1));
var x = r1 * cos(i) * r2 * cos(j);
var y = r1 * sin(i) * r2 * cos(j);
var z = r2 * sin(j);
vertex(x , y , z );
}
co += 5;
}
endShape(CLOSE);
}