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