From 9a5eb0af61379d9e180eb5d19a311cdc58a70c20 Mon Sep 17 00:00:00 2001 From: MOHAMED MEHIAOUI <mohamed.mehiaoui8@etu.univ-lorraine.fr> Date: Sat, 15 Mar 2025 15:15:12 +0100 Subject: [PATCH] ajout de pomme devant le bol --- MEHIAOUI/projet.js | 51 ++++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/MEHIAOUI/projet.js b/MEHIAOUI/projet.js index 1ef83c6..17bb50c 100644 --- a/MEHIAOUI/projet.js +++ b/MEHIAOUI/projet.js @@ -61,6 +61,7 @@ function fillScene() { texture_vase.wrapT = THREE.MirroredRepeatWrapping; texture_vase.repeat.set(2, 2.6); + // table var tableMaterial = new THREE.MeshPhongMaterial({ @@ -71,7 +72,7 @@ function fillScene() { opacity: 0.9 }); - var table = new THREE.Mesh(new THREE.CylinderGeometry(10, 10, 1, 32), tableMaterial); + var table = new THREE.Mesh(new THREE.CylinderGeometry(15, 15, 1, 32), tableMaterial); table.position.set(0, 0, 5); // bol de fruits @@ -81,33 +82,36 @@ function fillScene() { bol.position.set(-5, 5, 5); bol.rotation.x = Math.PI; - function createApple(x, y, z, color) { + function createApple(x, y, z,color, rotation) { + // Créer la pomme avec une forme de révolution var applePoints = []; - applePoints.push(new THREE.Vector2(0, 0)); // Base - applePoints.push(new THREE.Vector2(1.2, 0.4)); - applePoints.push(new THREE.Vector2(1.8, 1.0)); - applePoints.push(new THREE.Vector2(2.1, 1.8)); // Plus large vers le centre - applePoints.push(new THREE.Vector2(2.0, 2.6)); - applePoints.push(new THREE.Vector2(1.7, 3.1)); - applePoints.push(new THREE.Vector2(1.4, 3.4)); // Arrondi progressif - applePoints.push(new THREE.Vector2(1.0, 3.6)); - applePoints.push(new THREE.Vector2(0.7, 3.7)); - applePoints.push(new THREE.Vector2(0.5, 3.65)); // Début de l'indentation - applePoints.push(new THREE.Vector2(0.3, 3.5)); // Légère dépression - applePoints.push(new THREE.Vector2(0.1, 3.3)); // Dépression plus marquée - applePoints.push(new THREE.Vector2(0, 3.2)); // Haut légèrement incurvé + applePoints.push(new THREE.Vector2(0, 0)); // Base + applePoints.push(new THREE.Vector2(1.2, 0.5)); // Un peu plus haut + applePoints.push(new THREE.Vector2(1.8, 1.2)); // Plus haut pour un profil plus allongé + applePoints.push(new THREE.Vector2(2.1, 2.0)); // Plus large vers le centre + applePoints.push(new THREE.Vector2(2.0, 2.7)); + applePoints.push(new THREE.Vector2(1.7, 3.2)); // Allonger la partie supérieure + applePoints.push(new THREE.Vector2(1.4, 3.5)); + applePoints.push(new THREE.Vector2(1.0, 3.7)); + applePoints.push(new THREE.Vector2(0.7, 3.8)); + applePoints.push(new THREE.Vector2(0.5, 3.7)); // Base plus marquée + applePoints.push(new THREE.Vector2(0.3, 3.5)); + applePoints.push(new THREE.Vector2(0.1, 3.3)); + applePoints.push(new THREE.Vector2(0, 3.2)); // Sommet var appleGeometry = new THREE.LatheGeometry(applePoints, 64); // Plus de segments pour plus de douceur - var appleMaterial = new THREE.MeshPhongMaterial({ color: color, shininess: 50 }); + var appleMaterial = new THREE.MeshPhongMaterial({color: color, shininess: 50 }); var apple = new THREE.Mesh(appleGeometry, appleMaterial); apple.position.set(x, y, z); + apple.rotation.z = rotation; // Rotation optionnelle // Créer la tige avec une légère courbure var stemGeometry = new THREE.CylinderGeometry(0.1, 0.15, 0.5, 16); var stemMaterial = new THREE.MeshPhongMaterial({ color: 0x8B4513 }); var stem = new THREE.Mesh(stemGeometry, stemMaterial); - stem.position.set(x, y + 3.4, z); - stem.rotation.z = Math.PI / 10; // Inclinaison réaliste + // Ajuster la tige pour qu'elle soit plus haute sur une pomme plus allongée + stem.position.set(x, y + 3.8, z); + stem.rotation.z = rotation + Math.PI / 10; // Inclinaison réaliste // Ajouter une petite feuille pour plus de réalisme var leafGeometry = new THREE.SphereGeometry(0.2, 16, 8); @@ -123,10 +127,13 @@ function fillScene() { //Remplir le bol de pommes à des positions différentes - createApple(-5, 2, 5, 0xFF0000); - createApple(-4, 4, 7, 0x00FF00); - createApple(-7, 3, 6, 0xFFFF00); - createApple(-2, 5, 5, 0xFF0000); + createApple(-5, 2, 5,0xFF0000,0); + createApple(-4, 4, 7, 0x00FF00,0); + createApple(-7, 3, 6, 0xFFFF00,0); + createApple(-2, 5, 5, 0xFF0000,0); + + //pomme devant le bol en ligne de gauche à droite + createApple(-5, 0.5, 13, 0xFF0000,0); // vase : exemple trouvé sur Internet -- GitLab