#D1
Insta : #Diplotopie -------- Merci de votre soutien et abonné vous :)
Log in to post a comment.
// --- Curseurs de structure (Limites augmentées) ---
const boucles = 200; // min=10, max=400, step=1 (Densité du filet)
const rayon_base = 200; // min=10, max=600, step=1 (Épaisseur du ruban)
const variation_rayon = 200; // min=0, max=400, step=1 (Effet 3D de torsion)
const echelle = 0.18; // min=0.05, max=3.0, step=0.01 (Taille globale)
// --- Nouveaux curseurs de déformation ---
const lobe_x = 0; // min=0, max=400, step=1 (Largeur de la base)
const lobe_y = 100; // min=0, max=400, step=1 (Hauteur de la base)
const pincement = -50; // min=-200, max=200, step=1 (Profondeur du pli en U)
const freq_torsion = 0.17; // min=0, max=30, step=0.01 (Nombre de vrilles 3D)
// --- Curseurs d'alignement (Pour centrer parfaitement) ---
const centre_x = 0; // min=-150, max=150, step=1 (Ajustement Horizontal)
const centre_y = -10; // min=-150, max=150, step=1 (Ajustement Vertical)
const turtle = new Turtle();
const resolution = 150; // Points par boucle (augmenté pour une courbe plus lisse)
const total_etapes = boucles * resolution;
function walk(i) {
if (i > total_etapes) {
return false;
}
let t = (i / total_etapes) * 2 * Math.PI;
let f = boucles * t;
// 1. Déformation de la structure centrale avec les nouveaux curseurs
let base_x = lobe_x * Math.sin(t);
let base_y = lobe_y * Math.cos(t) - pincement * Math.cos(2 * t);
// 2. Torsion paramétrable
let rayon = rayon_base + variation_rayon * Math.sin(freq_torsion * t);
// 3. Calcul final + Centrage manuel
let x = (base_x + rayon * Math.cos(f)) * echelle + centre_x;
let y = (base_y + rayon * Math.sin(f)) * echelle + centre_y;
if (i === 0) {
turtle.jump(x, y);
} else {
turtle.goto(x, y);
}
return true;
}