#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;
}