xxxxxxxxxx
83
// Source du tuto : https://www.youtube.com/watch?v=SGHWZz5Mrsw
// [11:41 ; ]
// Rayon de la sphere
let r = 200;
// Parametre de sphere spiraleuse
let spifreq, spifreq2 ;
let spifreqSlider, spifreq2Slider;
function setup() {
createCanvas(700, 700, WEBGL); //3D mode
angleMode(DEGREES);
colorMode(HSB); //Hue, Saturation, Brightness
stroke(199, 88, 88);
strokeWeight(3);
noFill();
// e1 signature
// Ici on cree un controle de type Slider, qui permettra de jouer sur la spifeq de la forme
spifreq = createDiv();
spifreqSlider = createSlider(1, 10, 1, 0.01); // min, max, defaut, stepSize
// Associer la classe CSS pour definir le style du slider
spifreq.class("valueDisplay");
spifreqSlider.class("Slider");
// Ici on cree un controle de type Slider, qui permettra de jouer sur la spifeq2 de la forme
spifreq2 = createDiv();
spifreq2Slider = createSlider(1, 10, 1, 0.01); // min, max, defaut, stepSize
// Associer la classe CSS pour definir le style du slider
spifreq2.class("valueDisplay");
spifreq2Slider.class("Slider");
}
function draw() {
background(230, 50, 15);
//Permet de controler la forme avec la souris + parametres de sensibilite
orbitControl(4,4);
// De base, la forme, en ligne a les poles alignes a l'horizontal, Il faut la faire tourner pour la mettre a la verticale
rotateY(90);
rotateZ(65);
// normalSphere();
// sphericalSpiral();
sphericalLissajous();
//BumpySphere();
// e2 signature
// afficher les slider de frequence
spifreq.html("Frequence max value " + spifreqSlider.value());
spifreq2.html("Frequence 2 max value " + spifreq2Slider.value());
}
//----------------------------------------------------------
//e2 : combiner les spheres
function sphericalLissajous(){
beginShape();
for (let theta = 0 ; theta < 360 ; theta += 0.1)
{
let x = r * cos(theta*spifreqSlider.value()) ;
let y = r * sin(theta*spifreqSlider.value()) * sin(theta*spifreq2Slider.value());
let z = r * sin(theta*spifreqSlider.value()) * cos(theta*spifreq2Slider.value());
vertex(x, y , z);
}
endShape(LINES);
}