Calculer Points Weight Watchers

Calculateur de Points Weight Watchers : Simplifiez Votre Parcours Minceur body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; line-height: 1.6; color: #333; background-color: #f8f9fa; margin: 0; padding: 0; display: flex; justify-content: center; padding-top: 20px; padding-bottom: 20px; } .container { width: 100%; max-width: 960px; margin: 0 auto; background-color: #ffffff; padding: 30px; border-radius: 8px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); display: flex; flex-direction: column; align-items: center; } header { width: 100%; text-align: center; margin-bottom: 30px; padding-bottom: 20px; border-bottom: 1px solid #e0e0e0; } h1 { color: #004a99; font-size: 2.5em; margin-bottom: 10px; } .subtitle { font-size: 1.1em; color: #555; } .loan-calc-container { width: 100%; max-width: 600px; background-color: #fdfdfd; padding: 25px; border-radius: 8px; box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.05); margin-bottom: 30px; } .input-group { margin-bottom: 20px; text-align: left; } .input-group label { display: block; margin-bottom: 8px; font-weight: bold; color: #004a99; font-size: 0.95em; } .input-group input[type="number"], .input-group select { width: calc(100% – 24px); padding: 12px; border: 1px solid #ccc; border-radius: 5px; font-size: 1em; box-sizing: border-box; transition: border-color 0.3s ease; } .input-group input[type="number"]:focus, .input-group select:focus { border-color: #004a99; outline: none; } .input-group .helper-text { font-size: 0.85em; color: #666; margin-top: 5px; display: block; } .input-group .error-message { color: #dc3545; font-size: 0.8em; margin-top: 5px; display: none; } .button-group { display: flex; justify-content: space-between; margin-top: 25px; } .btn { padding: 12px 25px; border: none; border-radius: 5px; font-size: 1em; font-weight: bold; cursor: pointer; transition: background-color 0.3s ease, transform 0.2s ease; text-transform: uppercase; margin-right: 10px; } .btn-primary { background-color: #004a99; color: white; } .btn-primary:hover { background-color: #003a7a; transform: translateY(-1px); } .btn-secondary { background-color: #6c757d; color: white; } .btn-secondary:hover { background-color: #5a6268; transform: translateY(-1px); } .btn-reset { background-color: #ffc107; color: #212529; } .btn-reset:hover { background-color: #e0a800; transform: translateY(-1px); } .results-container { margin-top: 30px; padding: 25px; background-color: #e9ecef; border-radius: 8px; border: 1px solid #dee2e6; width: 100%; max-width: 600px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); } .results-container h3 { color: #004a99; margin-top: 0; margin-bottom: 20px; font-size: 1.4em; text-align: center; } .result-item { display: flex; justify-content: space-between; margin-bottom: 12px; padding: 10px 0; border-bottom: 1px dashed #ccc; } .result-item:last-child { border-bottom: none; } .result-label { font-weight: bold; color: #333; } .result-value { font-weight: bold; color: #28a745; } .primary-result { font-size: 2.2em; font-weight: bold; color: #fff; background-color: #28a745; padding: 15px 20px; border-radius: 6px; text-align: center; margin-bottom: 15px; box-shadow: 0 3px 10px rgba(40, 167, 69, 0.4); } .primary-result-label { font-size: 1.1em; color: #fff; opacity: 0.9; display: block; margin-bottom: 8px; } .formula-explanation { font-size: 0.9em; color: #555; margin-top: 15px; padding: 10px; background-color: #f0f0f0; border-radius: 4px; text-align: center; } #chartContainer { width: 100%; max-width: 600px; margin-top: 30px; padding: 25px; background-color: #fdfdfd; border-radius: 8px; box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.05); text-align: center; } #chartContainer h3 { color: #004a99; margin-top: 0; margin-bottom: 20px; font-size: 1.4em; } #chartContainer canvas { max-width: 100%; height: auto; } #chartContainer .legend { margin-top: 15px; font-size: 0.9em; color: #555; } #chartContainer .legend span { display: inline-block; margin: 0 10px; } #chartContainer .legend span::before { content: "; display: inline-block; width: 12px; height: 12px; margin-right: 5px; border-radius: 3px; } .legend .points-per-food::before { background-color: #004a99; } .legend .daily-points::before { background-color: #28a745; } table.data-table { width: 100%; max-width: 600px; margin-top: 30px; border-collapse: collapse; background-color: #fdfdfd; border-radius: 8px; overflow: hidden; box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.05); } table.data-table caption { font-size: 1.2em; color: #004a99; font-weight: bold; margin-bottom: 15px; text-align: center; } table.data-table th, table.data-table td { padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0; } table.data-table thead th { background-color: #004a99; color: white; font-weight: bold; } table.data-table tbody tr:nth-child(even) { background-color: #f2f2f2; } table.data-table tbody td { font-size: 0.95em; } .section { width: 100%; margin-top: 40px; padding-top: 30px; border-top: 1px solid #e0e0e0; } .section h2 { color: #004a99; text-align: center; margin-bottom: 25px; font-size: 2em; } .section h3 { color: #004a99; margin-top: 20px; margin-bottom: 15px; font-size: 1.5em; } .section p, .section ul, .section ol { margin-bottom: 20px; color: #333; } .section li { margin-bottom: 10px; } .faq-item { border: 1px solid #e0e0e0; border-radius: 5px; margin-bottom: 15px; padding: 15px; background-color: #fff; } .faq-item h4 { color: #004a99; margin-top: 0; margin-bottom: 10px; font-size: 1.1em; cursor: pointer; } .faq-item .answer { display: none; font-size: 0.95em; color: #555; margin-top: 10px; } .internal-links { background-color: #e9ecef; padding: 25px; border-radius: 8px; text-align: center; } .internal-links h3 { color: #004a99; margin-top: 0; margin-bottom: 20px; font-size: 1.4em; } .internal-links ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 15px; } .internal-links li { margin-bottom: 0; } .internal-links a { color: #004a99; text-decoration: none; font-weight: bold; padding: 8px 15px; border: 1px solid #004a99; border-radius: 5px; transition: background-color 0.3s, color 0.3s; } .internal-links a:hover { background-color: #004a99; color: white; } footer { text-align: center; margin-top: 40px; padding-top: 20px; border-top: 1px solid #e0e0e0; font-size: 0.9em; color: #666; } /* Responsive adjustments */ @media (max-width: 768px) { .container { padding: 20px; } h1 { font-size: 2em; } .btn { font-size: 0.9em; padding: 10px 20px; } .results-container, #chartContainer, table.data-table { max-width: 100%; } .button-group { flex-direction: column; align-items: center; gap: 10px; } .btn { width: 100%; max-width: 300px; margin-right: 0; } }

Calculateur de Points Weight Watchers

Estimez vos points quotidiens et hebdomadaires pour un suivi alimentaire efficace.

Entrez le nombre total de calories que vous consommez en moyenne par jour.
Indiquez votre apport moyen en protéines, essentiel pour la satiété.
Entrez votre apport moyen en lipides (matières grasses).
Spécifiez votre apport moyen en glucides.
Votre apport moyen en fibres alimentaires.

Vos Points Estimés

Points Weight Watchers Estimés (par jour)
Points de base (Calories)
Points (Protéines – Satiété)
Points (Lipides – Impact)
Points (Glucides – Énergie)
Points (Fibres – Bonus)
Points Hebdomadaires Estimés
La formule de calcul des Points Weight Watchers (une approximation) prend en compte plusieurs facteurs nutritionnels pour attribuer une valeur en points aux aliments ou à une journée alimentaire. Chaque nutriment est converti en points selon des règles spécifiques, puis les points sont ajustés pour refléter la densité calorique et d'autres aspects de l'alimentation.

Répartition des Points par Nutriments

Points par Nutriment Total Points Journaliers
Détail Nutritionnel et Points Associés
Nutriment Quantité (g ou kcal) Points Estimés
Calories
Protéines
Lipides
Glucides
Fibres
Total Journalier

Qu'est-ce que le Calculateur de Points Weight Watchers ?

Le calculateur de points Weight Watchers est un outil précieux conçu pour aider les individus à comprendre et à estimer le système de points utilisé par le programme Weight Watchers (maintenant connu sous le nom de WW). Ce système attribue une valeur en "points" aux aliments et boissons en fonction de leur contenu nutritionnel, principalement les calories, les protéines, les lipides et les glucides. L'objectif est d'encourager la consommation d'aliments plus sains et moins denses en calories tout en permettant une certaine flexibilité.

Qui devrait utiliser cet outil ?

Ce calculateur est idéal pour :

  • Les nouveaux membres de WW qui débutent avec le système de points et souhaitent une estimation préliminaire.
  • Les membres existants qui veulent vérifier leur compréhension du système ou estimer les points d'aliments non répertoriés officiellement.
  • Toute personne intéressée par une approche structurée de la perte de poids basée sur la nutrition, cherchant à mieux comprendre l'impact de différents macronutriments.
  • Les personnes qui souhaitent évaluer la densité nutritionnelle de leurs repas quotidiens.

Idées fausses courantes

Il est important de noter que ce calculateur fournit une estimation. Le système officiel de WW peut avoir des ajustements ou des considérations supplémentaires. De plus :

  • Ce n'est pas un substitut à l'application WW officielle : L'application WW contient la base de données la plus précise et à jour des aliments.
  • Les points ne sont pas une mesure de la qualité nutritionnelle absolue : Bien que conçus pour favoriser des choix sains, certains aliments "sains" peuvent avoir un nombre de points élevé, et vice versa.
  • Le calcul peut varier : Différentes versions du programme WW ont utilisé des formules légèrement différentes au fil du temps (par exemple, SmartPoints, które,anciennement). Ce calculateur se base sur une formule générale couramment utilisée.

Formule et Explication Mathématique du Calculateur de Points Weight Watchers

La formule utilisée par ce calculateur est une approximation basée sur les principes généraux du système de points WW. Elle vise à refléter comment les différents macronutriments contribuent à la densité calorique et à la satiété.

Dérivation Étape par Étape

  1. Points Basés sur les Calories : La base du calcul est souvent le nombre total de calories. Plus un aliment est calorique, plus il reçoit de points.
  2. Ajustement pour les Protéines : Les protéines sont considérées comme plus rassasiantes et moins "facilement" stockées sous forme de graisse. Par conséquent, un apport élevé en protéines peut réduire le nombre de points calculés.
  3. Ajustement pour les Lipides : Les lipides sont denses en calories (9 kcal/g contre 4 kcal/g pour les protéines et glucides). Un apport élevé en lipides augmente généralement le nombre de points.
  4. Ajustement pour les Glucides : Les glucides sont une source d'énergie principale. Leur impact sur les points peut varier, mais ils sont généralement pris en compte.
  5. Bonus Fibres : Les fibres alimentaires contribuent à la satiété et à la santé digestive sans apporter de calories significatives. Un apport élevé en fibres peut potentiellement réduire le nombre de points.
  6. Totalisation : Toutes ces contributions sont sommées pour obtenir un total de points journaliers. Les points hebdomadaires sont ensuite calculés en multipliant les points journaliers par 7.

Explication des Variables

Voici les variables utilisées dans notre calculateur et leur signification :

Tableau des Variables du Calculateur
Variable Signification Unité Plage Typique
Calories Apport énergétique total quotidien. kcal/jour 1200 – 2500+
Protéines Apport en protéines, contribue à la satiété. grammes/jour 50 – 150+
Lipides Apport en matières grasses, densité calorique élevée. grammes/jour 30 – 100+
Glucides Apport en glucides, source d'énergie. grammes/jour 100 – 300+
Fibres Apport en fibres alimentaires, favorise la satiété. grammes/jour 20 – 40+
Points Journaliers Nombre total de points estimés pour une journée. Points Variable selon les entrées
Points Hebdomadaires Total des points journaliers multiplié par 7. Points Variable selon les entrées

Exemples Pratiques (Cas d'Utilisation Réels)

Exemple 1 : Journée Équilibrée pour la Perte de Poids

Objectif : Une personne cherchant à perdre du poids suit un régime avec un apport calorique contrôlé et un bon équilibre des macronutriments.

Entrées :

  • Calories : 1600 kcal
  • Protéines : 90 g
  • Lipides : 55 g
  • Glucides : 180 g
  • Fibres : 30 g

Sorties Estimées (après calcul) :

  • Points Journaliers : Environ 28 points
  • Points Hebdomadaires : Environ 196 points

Interprétation : Cette journée alimentaire, bien que fournissant une quantité raisonnable de nutriments, se traduit par un nombre de points modéré, ce qui est cohérent avec un objectif de perte de poids dans de nombreux programmes WW. L'apport en protéines et en fibres est bon, tandis que les lipides et glucides sont dans des proportions raisonnables.

Exemple 2 : Journée Riche en Protéines et Faible en Lipides

Objectif : Un athlète ou une personne privilégiant les aliments maigres et riches en protéines.

Entrées :

  • Calories : 1800 kcal
  • Protéines : 120 g
  • Lipides : 40 g
  • Glucides : 240 g
  • Fibres : 35 g

Sorties Estimées (après calcul) :

  • Points Journaliers : Environ 25 points
  • Points Hebdomadaires : Environ 175 points

Interprétation : Malgré un apport calorique légèrement supérieur, le nombre élevé de protéines et le faible taux de lipides contribuent à un total de points journaliers plus bas que l'exemple 1. Ceci illustre comment le système de points peut favoriser les aliments maigres et rassasiants. Les fibres apportent également un bonus.

Comment Utiliser Ce Calculateur de Points Weight Watchers

Notre calculateur est conçu pour être simple et intuitif. Suivez ces étapes pour obtenir vos estimations :

  1. Saisissez vos données nutritionnelles : Dans les champs prévus, entrez votre apport moyen quotidien en calories, protéines, lipides, glucides et fibres. Ces informations se trouvent généralement sur les emballages alimentaires ou peuvent être estimées via des applications de suivi nutritionnel.
  2. Cliquez sur "Calculer les Points" : Une fois vos informations saisies, appuyez sur ce bouton. Le calculateur traitera vos données en temps réel.
  3. Analysez les résultats : Les totaux des points journaliers et hebdomadaires estimés s'afficheront dans la section des résultats. Vous verrez également la contribution de chaque macronutriment aux points totaux.
  4. Examinez le graphique et le tableau : Le graphique visualise la répartition des points par nutriment, et le tableau détaille les valeurs entrées et les points calculés pour chaque catégorie.
  5. Utilisez le bouton "Copier les Résultats" : Si vous souhaitez sauvegarder ou partager ces informations, ce bouton copiera les valeurs principales et les hypothèses utilisées dans votre presse-papiers.
  6. Réinitialisez si nécessaire : Le bouton "Réinitialiser" rétablira les valeurs par défaut, vous permettant de recommencer facilement.

Comment lire les résultats et prendre des décisions

Les points affichés sont une estimation. Utilisez-les comme guide :

  • Objectif : Si vous connaissez votre budget de points WW officiel, comparez-le à l'estimation.
  • Ajustements : Si votre total de points estimé est trop élevé pour vos objectifs, considérez des aliments plus riches en protéines et en fibres, et moins riches en lipides. Si le total est trop bas, vous pourriez avoir besoin d'augmenter légèrement certains apports sains.
  • Cohérence : L'important est la cohérence sur le long terme. Utilisez le calculateur pour comprendre comment vos choix alimentaires quotidiens impactent votre total de points.

Facteurs Clés Affectant les Résultats du Calculateur de Points Weight Watchers

Plusieurs éléments influencent le nombre de points calculés et l'efficacité de ce système pour la perte de poids :

  1. Densité Énergétique des Aliments : C'est le facteur le plus déterminant. Les aliments riches en calories par gramme (comme les graisses et les sucres) auront intrinsèquement plus de points.
  2. Apport en Protéines : Les protéines ont un effet thermogénique plus élevé (le corps dépense plus d'énergie pour les digérer) et sont très rassasiantes. Un apport suffisant peut donc "réduire" le coût en points par rapport à d'autres macronutriments pour une même quantité de calories.
  3. Teneur en Lipides : En raison de leur haute densité calorique (9 kcal/g), les graisses augmentent rapidement le nombre de points, même si elles sont essentielles à la santé. Le système WW encourage un apport modéré en lipides.
  4. Fibres Alimentaires : Les fibres augmentent la satiété et ralentissent l'absorption des sucres. Le système WW récompense souvent les aliments riches en fibres, ce qui peut diminuer le nombre de points calculés.
  5. Statut Métabolique Individuel : Le métabolisme de base varie d'une personne à l'autre en fonction de l'âge, du sexe, de la masse musculaire, etc. Ce calculateur utilise des moyennes ; votre corps peut réagir différemment.
  6. Type de Glucides : Bien que ce calculateur regroupe tous les glucides, le système WW peut différencier les glucides complexes (riches en fibres) des sucres simples. Les premiers sont généralement favorisés.
  7. Hydratation : Boire suffisamment d'eau peut aider à la satiété et au métabolisme, bien que non directement intégré dans la formule de points.
  8. Activité Physique : L'exercice augmente la dépense calorique et peut influencer la composition corporelle (plus de muscle = métabolisme plus élevé). Bien que non inclus dans le calcul des points alimentaires, il est crucial pour la perte de poids globale.

Foire Aux Questions (FAQ) sur le Calculateur de Points Weight Watchers

Q1 : Ce calculateur donne-t-il mon nombre exact de points WW ?

Non, ce calculateur fournit une estimation basée sur une formule générale. Le système officiel WW, accessible via leur application ou leurs outils, est la source la plus précise car il intègre des spécificités et des mises à jour du programme.

Q2 : Pourquoi les protéines réduisent-elles les points ?

Les protéines sont métaboliquement plus coûteuses à digérer et procurent une sensation de satiété plus durable, aidant à contrôler l'appétit. Le système WW valorise donc les aliments riches en protéines.

Q3 : Comment les glucides sont-ils pris en compte ?

Les glucides fournissent de l'énergie. Leur impact sur les points dépend de leur quantité et, dans certains systèmes WW, de leur type (complexes vs simples) et de leur teneur en fibres. Ce calculateur utilise une approche globale.

Q4 : Que faire si mes points estimés sont très différents de mon objectif WW ?

Utilisez cette différence comme une indication. Si l'estimation est trop élevée, privilégiez des aliments moins denses en calories (plus de légumes, fruits, protéines maigres). Si elle est trop basse, assurez-vous que votre apport en nutriments essentiels est suffisant. Revoyez vos entrées pour vérifier leur exactitude.

Q5 : Ce calculateur fonctionne-t-il pour tous les programmes WW (SmartPoints, które, etc.) ?

Ce calculateur est basé sur une formule généralisée qui tente de capturer l'esprit des systèmes de points WW. Les programmes spécifiques (comme le nouveau système które) peuvent avoir des nuances. Il est toujours préférable de consulter les ressources officielles de WW pour le programme que vous suivez.

Q6 : Puis-je entrer les informations pour un seul aliment plutôt que pour une journée ?

Ce calculateur est conçu pour estimer les points d'une journée ou d'une période basée sur un apport total quotidien. Pour calculer les points d'un aliment spécifique, il est recommandé d'utiliser la base de données officielle de WW qui contient des valeurs prédéfinies.

Q7 : Les points hebdomadaires sont-ils fixes ?

Dans le programme WW, les points hebdomadaires sont souvent des points "bonus" flexibles. Ce calculateur fournit une estimation basée sur vos points journaliers, mais votre allocation officielle peut varier selon le plan WW et vos objectifs personnels.

Q8 : Est-ce que ce système de points est scientifiquement prouvé pour la perte de poids ?

Le système WW, y compris son approche basée sur les points, a fait l'objet de plusieurs études. Il est généralement considéré comme une stratégie efficace pour la perte de poids lorsqu'il est associé à des changements de comportement alimentaire et à un mode de vie sain. L'accent mis sur les aliments moins denses en calories et plus rassasiants est une base solide.

© 2023 Votre Site Web. Tous droits réservés.

Ce calculateur est un outil éducatif et ne remplace pas un avis médical ou diététique professionnel.

var chartInstance = null; // Variable globale pour stocker l'instance du graphique function validateInput(id, errorId, min, max) { var input = document.getElementById(id); var errorElement = document.getElementById(errorId); var value = parseFloat(input.value); errorElement.style.display = 'none'; // Masquer l'erreur par défaut if (isNaN(value) || input.value.trim() === "") { errorElement.textContent = "Veuillez entrer une valeur valide."; errorElement.style.display = 'block'; return false; } if (value max) { errorElement.textContent = "La valeur est trop élevée."; errorElement.style.display = 'block'; return false; } return true; } function calculatePoints() { // Validation des entrées var validCalories = validateInput('calories', 'caloriesError', 0); var validProtein = validateInput('protein', 'proteinError', 0); var validFat = validateInput('fat', 'fatError', 0); var validCarbs = validateInput('carbs', 'carbsError', 0); var validFiber = validateInput('fiber', 'fiberError', 0); if (!validCalories || !validProtein || !validFat || !validCarbs || !validFiber) { document.getElementById('resultsContainer').style.display = 'none'; document.getElementById('chartContainer').style.display = 'none'; document.getElementById('nutritionalDataTable').style.display = 'none'; return; } var calories = parseFloat(document.getElementById('calories').value); var protein = parseFloat(document.getElementById('protein').value); var fat = parseFloat(document.getElementById('fat').value); var carbs = parseFloat(document.getElementById('carbs').value); var fiber = parseFloat(document.getElementById('fiber').value); // Coefficients simplifiés basés sur des approximations courantes (peuvent varier légèrement selon les versions WW) // Ces coefficients sont indicatifs et visent à refléter l'impact relatif de chaque nutriment. var fatCaloriesPerGram = 9; var proteinCaloriesPerGram = 4; var carbCaloriesPerGram = 4; var fiberCaloriesPerGram = 2; // Approximation, car les fibres n'apportent pas de calories "utilisables" var caloriesFromFat = fat * fatCaloriesPerGram; var caloriesFromProtein = protein * proteinCaloriesPerGram; var caloriesFromCarbs = carbs * carbCaloriesPerGram; var caloriesFromFiber = fiber * fiberCaloriesPerGram; // Points basés sur les calories (souvent un facteur clé) var basePoints = calories / 50; // Approximation : 1 point pour ~50 kcal // Points supplémentaires ou réductions basés sur les macronutriments // Ces ajustements visent à moduler les points pour favoriser certains nutriments var proteinAdjustment = (protein * 4) / 100; // Réduction pour protéines var fatAdjustment = (fat * 9) / 15; // Augmentation pour lipides (plus denses) var carbAdjustment = (carbs * 4) / 200; // Ajustement léger pour glucides var fiberBonus = (fiber * 2) / 50; // Bonus pour fibres // Calcul des points individuels (simplifié) var pointsFromFat = caloriesFromFat / 30; // Approximation : 1 point pour ~30 kcal de gras var pointsFromProtein = proteinCaloriesPerGram * protein / 150; // Approximation : 1 point pour ~150 kcal de protéines var pointsFromCarbs = caloriesFromCarbs / 200; // Approximation : 1 point pour ~200 kcal de glucides var pointsFromFiber = (fiber * 0.5) / 50; // Bonus faible pour fibres // Calcul du total des points journaliers // Une formule commune peut ressembler à ceci, mais elle est souvent simplifiée dans les applications // Ceci est une version illustrative : var dailyPoints = Math.max(0, (basePoints + fatAdjustment – proteinAdjustment – carbAdjustment – fiberBonus)); // Une autre façon de voir les points individuels : var pointsPerFood = pointsFromFat + pointsFromProtein + pointsFromCarbs – pointsFromFiber; // Points Hebdomadaires var weeklyPoints = dailyPoints * 7; // Mise à jour des résultats document.getElementById('dailyPoints').textContent = dailyPoints.toFixed(1); document.getElementById('mainResult').style.display = 'block'; // Assurez-vous que le conteneur principal est visible document.getElementById('basePoints').textContent = (basePoints).toFixed(1); document.getElementById('proteinPoints').textContent = (-proteinAdjustment).toFixed(1); // Affiché comme une réduction document.getElementById('fatPoints').textContent = (fatAdjustment).toFixed(1); // Affiché comme un ajout document.getElementById('carbPoints').textContent = (-carbAdjustment).toFixed(1); // Affiché comme une réduction document.getElementById('fiberPoints').textContent = (-fiberBonus).toFixed(1); // Affiché comme un bonus (réduction) document.getElementById('weeklyPoints').textContent = weeklyPoints.toFixed(1); document.getElementById('resultsContainer').style.display = 'block'; // Mise à jour du tableau de données document.getElementById('tableCalories').textContent = calories.toFixed(0); document.getElementById('tableProtein').textContent = protein.toFixed(1); document.getElementById('tableFat').textContent = fat.toFixed(1); document.getElementById('tableCarbs').textContent = carbs.toFixed(0); document.getElementById('tableFiber').textContent = fiber.toFixed(0); document.getElementById('tableBasePoints').textContent = basePoints.toFixed(1); document.getElementById('tableProteinPoints').textContent = (-proteinAdjustment).toFixed(1); document.getElementById('tableFatPoints').textContent = fatAdjustment.toFixed(1); document.getElementById('tableCarbPoints').textContent = (-carbAdjustment).toFixed(1); document.getElementById('tableFiberPoints').textContent = (-fiberBonus).toFixed(1); document.getElementById('tableTotalDailyPoints').textContent = dailyPoints.toFixed(1); document.getElementById('nutritionalDataTable').style.display = 'table'; // Mise à jour du graphique updateChart(dailyPoints, pointsPerFood, pointsFromFat, pointsFromProtein, pointsFromCarbs, pointsFromFiber); document.getElementById('chartContainer').style.display = 'block'; } function updateChart(totalDailyPoints, pointsPerFood, pointsFromFat, pointsFromProtein, pointsFromCarbs, pointsFromFiber) { var ctx = document.getElementById('pointsChart').getContext('2d'); // Destruction de l'ancien graphique s'il existe if (chartInstance) { chartInstance.destroy(); } // Création du nouveau graphique chartInstance = new Chart(ctx, { type: 'bar', // Utilisation de barres pour visualiser les contributions data: { labels: ['Lipides', 'Protéines', 'Glucides', 'Fibres'], datasets: [{ label: 'Points par Nutriment', data: [pointsFromFat, pointsFromProtein, pointsFromCarbs, pointsFromFiber], backgroundColor: [ 'rgba(0, 74, 153, 0.6)', // Lipides (bleu) 'rgba(40, 167, 69, 0.6)', // Protéines (vert) 'rgba(255, 193, 7, 0.6)', // Glucides (jaune) 'rgba(108, 117, 125, 0.6)' // Fibres (gris) ], borderColor: [ 'rgba(0, 74, 153, 1)', 'rgba(40, 167, 69, 1)', 'rgba(255, 193, 7, 1)', 'rgba(108, 117, 125, 1)' ], borderWidth: 1 }] }, options: { responsive: true, maintainAspectRatio: false, scales: { y: { beginAtZero: true, title: { display: true, text: 'Points' } } }, plugins: { tooltip: { callbacks: { footer: function(tooltipItems) { var total = 0; tooltipItems.forEach(function(item) { total += item.raw; }); return 'Contribution Totale : ' + total.toFixed(1) + ' pts'; } } }, legend: { display: false // La légende est gérée par notre propre div } } } }); } function resetForm() { document.getElementById('calories').value = 1500; document.getElementById('protein').value = 75; document.getElementById('fat').value = 50; document.getElementById('carbs').value = 175; document.getElementById('fiber').value = 25; // Effacer les messages d'erreur document.getElementById('caloriesError').textContent = "; document.getElementById('proteinError').textContent = "; document.getElementById('fatError').textContent = "; document.getElementById('carbsError').textContent = "; document.getElementById('fiberError').textContent = "; // Cacher les résultats et le graphique document.getElementById('resultsContainer').style.display = 'none'; document.getElementById('chartContainer').style.display = 'none'; document.getElementById('nutritionalDataTable').style.display = 'none'; } function copyResults() { var dailyPoints = document.getElementById('dailyPoints').textContent; var weeklyPoints = document.getElementById('weeklyPoints').textContent; var basePoints = document.getElementById('basePoints').textContent; var proteinPoints = document.getElementById('proteinPoints').textContent; var fatPoints = document.getElementById('fatPoints').textContent; var carbPoints = document.getElementById('carbPoints').textContent; var fiberPoints = document.getElementById('fiberPoints').textContent; var calories = document.getElementById('calories').value; var protein = document.getElementById('protein').value; var fat = document.getElementById('fat').value; var carbs = document.getElementById('carbs').value; var fiber = document.getElementById('fiber').value; var resultText = "=== Résultats Calculateur Points WW ===\n\n"; resultText += "Hypothèses Nutritionnelles Journalières :\n"; resultText += "- Calories: " + calories + " kcal\n"; resultText += "- Protéines: " + protein + " g\n"; resultText += "- Lipides: " + fat + " g\n"; resultText += "- Glucides: " + carbs + " g\n"; resultText += "- Fibres: " + fiber + " g\n\n"; resultText += "Résultats Estimés :\n"; resultText += "- Points Journaliers: " + dailyPoints + "\n"; resultText += "- Points Hebdomadaires: " + weeklyPoints + "\n\n"; resultText += "Détail des Points Journaliers :\n"; resultText += "- Points de Base (Calories): " + basePoints + "\n"; resultText += "- Points (Protéines – Ajustement): " + proteinPoints + "\n"; resultText += "- Points (Lipides – Ajustement): " + fatPoints + "\n"; resultText += "- Points (Glucides – Ajustement): " + carbPoints + "\n"; resultText += "- Points (Fibres – Bonus): " + fiberPoints + "\n"; // Utilisation de l'API Clipboard pour copier le texte navigator.clipboard.writeText(resultText).then(function() { // Optionnel: afficher une confirmation à l'utilisateur var originalButtonText = document.querySelector('.btn-secondary').textContent; document.querySelector('.btn-secondary').textContent = 'Copié!'; setTimeout(function() { document.querySelector('.btn-secondary').textContent = originalButtonText; }, 2000); }).catch(function(err) { console.error('Erreur lors de la copie des résultats: ', err); alert('Impossible de copier les résultats. Veuillez copier manuellement.'); }); } // Script pour le FAQ accordéon var faqItems = document.querySelectorAll('.faq-item h4'); faqItems.forEach(function(item) { item.addEventListener('click', function() { var answer = this.nextElementSibling; if (answer.style.display === 'block') { answer.style.display = 'none'; } else { answer.style.display = 'block'; } }); }); // Charger le graphique initialement si des valeurs par défaut sont présentes document.addEventListener('DOMContentLoaded', function() { // S'assurer que les valeurs par défaut sont valides avant de calculer if (validateInput('calories', 'caloriesError', 0) && validateInput('protein', 'proteinError', 0) && validateInput('fat', 'fatError', 0) && validateInput('carbs', 'carbsError', 0) && validateInput('fiber', 'fiberError', 0)) { calculatePoints(); } });

Leave a Comment