Merci pour votre note et vos commentaires!
Vous avez déjà évalué.
Une application pour visualiser les courbes spatiales et leurs grandeurs différentielles géométriques.
# Application Visualiseur de Courbes pour Android
**Anglais** | [Bulgare](README.bg.md)
Une application pour visualiser les courbes spatiales et calculer leurs grandeurs différentielles géométriques.
## Utilisation de l'application
- Saisissez `x(t)`, `y(t)`, `z(t)` et un intervalle `[a, b]`, puis appuyez sur **Dessiner**.
- Le curseur déplace le point le long de la courbe ; toutes les grandeurs sont mises à jour pour la valeur actuelle de `t`.
- Faites pivoter la courbe avec votre doigt. La case à cocher active ou désactive le cercle osculateur.
- Syntaxe (exp4j) : `+ - * / ^`, `sin cos tan asin acos atan sinh cosh tanh exp log sqrt abs`, constantes `pi` et `e`. Exemple : `2*sin(t)^2`.
## Tableau des points
L'icône du tableau ouvre un écran séparé (`PointsActivity`) affichant les coordonnées x(t), y(t), z(t) des points de la courbe actuelle. Définissez **t de départ**, **t à la** et le **pas**, puis appuyez sur **Calculer**. Par défaut, l'intervalle est égal à 1/10 de sa longueur. Jusqu'à 2 000 points sont affichés. Le texte est sélectionnable et peut donc être copié.
## Enregistrement des courbes
- **Enregistrer (icône de disque)** : enregistre la courbe actuelle (x, y, z et intervalle) sous un nom ; enregistrer avec un nom existant l'écrase.
- **Mes courbes (icône de dossier)** : liste les courbes enregistrées. Appuyez sur une courbe pour la charger et la dessiner ; appuyez longuement pour la supprimer.
- Les courbes sont conservées sur l'appareil (SharedPreferences) et sont conservées même après le redémarrage de l'application.
## Menu (⋮)
La barre supérieure contient des icônes pour Enregistrer et Mes courbes, ainsi que des exemples et l'option Langue (si l'espace le permet), et un menu contextuel ⋮ (À propos) :
- **Exemples :** hélice, cercle, cubique torsadée, courbe de Viviani, nœud de trèfle. En sélectionnant un exemple, les champs sont remplis et la courbe est tracée.
- **Langue :** Auto (système), anglais, bulgare, français, allemand, espagnol.
- **Aide :** une brève description de l'application, des liens vers les autres applications de l'auteur et l'aide de l'application.
## Langues
L'interface utilisateur est disponible en anglais (par défaut), bulgare, français, allemand et espagnol. Par défaut, elle utilise la langue du téléphone ; le menu permet de choisir une langue manuellement (le choix est mémorisé). Pour ajouter une langue, copiez `res/values/strings.xml` dans `res/values-XX/` (XX étant le code de la langue), traduisez les valeurs, puis ajoutez le code à `LANG_CODES` et le nom à `setupLanguageSpinner()` dans `MainActivity.java`.
## Quantités affichées
| Quantité | Formule | Signification |
| **r(t)** | (x(t), y(t), z(t)) | Position du point |
| **\|r'\|** (vitesse) | √(x'² + y'² + z'²) | Vitesse le long de la paramétrisation |
| **s** (longueur d'arc) | ∫ₐᵗ \|r'(u)\| du | Distance parcourue de a à t (règle de Simpson) |
| **κ** (courbure) | ||r' × r''| / ||r'|³ | Vitesse de courbure. Ligne : 0. Cercle de rayon R : 1/R |
| **ρ** (rayon de courbure) | 1/κ | Rayon du cercle d'approximation optimale. ∞ lorsque κ = 0 |
| **τ** (torsion) | (r' × r'')·r''' / ||r' × r''|² | Déviation de la courbe par rapport à son plan. Courbe plane : 0. Courbe droite : τ > 0, courbe gauche : τ < 0 |
| **T** (tangente) | r' / ||r'| | Vecteur unitaire dans le sens du mouvement (rouge) |
| **N** (normale principale) | B × T | Vecteur unitaire dirigé vers le centre de courbure (vert) |
| **B** (binormale) | (r' × r'') / ||r' × r''| | Perpendiculaire au plan osculateur (bleu) |
| **a_T** | (r'·r'') / ||r'| | Accélération tangentielle : variation de vitesse |
| **a_N** | κ·||r'|² | Accélération normale : changement de direction. L'accélération totale est a_T·T + a_N·N |
| **Centre de courbure** | C = r + ρ·N | Centre du cercle osculateur |
| **Cercle osculateur** | Situé dans le plan (T, N), de centre C et de rayon ρ | Cercle tangent à la courbe au point le plus élevé (orange) |
### Plans du repère
- **Plan osculateur :** engendré par T et N, vecteur normal B
- **Plan normal :** engendré par N et B, vecteur normal T
- **Plan rectifiant :** engendré par T et B, vecteur normal N
### Formules de Frenet-Serret
(s est la longueur d'arc)
- dT/ds = κ·N
- dN/ds = −κ·T + τ·B
- dB/ds = −τ·N
La courbure et la torsion définissent une courbe de manière unique, à un mouvement rigide près.
## Fonctionnement
r', r'' et r''' sont calculés numériquement par différences finies centrées (pas H = 10⁻³), puis les formules sont appliquées. La longueur d'arc est calculée par la méthode de Simpson (200 intervalles).
Un clic pour installer les fichiers XAPK/APK sur Android!