IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Algorithme pour tracer une ellipse


Sujet :

avec Java

  1. #1
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut Algorithme pour tracer une ellipse
    Bonjour tout le monde,
    Je fait mon algo en java, mais comme c'est plus de des maths que du java, merci de me rediriger au cas ou.

    Bon, je veux faire un algorithme pour tracer des ellipses.
    Mais dans un premier temps, des quarts d'ellipses.

    Ce qu'il me faut c'est un truc bien précis.
    C'est ça:
    Nom : dessin.png
Affichages : 323
Taille : 2,6 Ko

    Vous voyez, la périphérie forme une courbe en fonction de X et Y.
    Ce que je veux c'est une fonction qui, en sachant X et Y, me donne h en parcourant X.

    Merci de votre aide.

  2. #2
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460

  3. #3
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    Whaou!!!! J'ai rien compris.
    Si quelqu'un à la patience de vulgariser c'est avec grand plaisir.
    En attendent merci beaucoup de ton aide.
    J'vais regarder si il n'y a pas des vidéos qui en parlent.

  4. #4
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut
    La première équation exprime y en fonction de x (avec a>b):
    (x/a)² + (y/b)² = 1
    -> (y/b)² = 1 - (x/a)²
    -> y/b = sqrt(1 - (x/a)²)
    -> y = b * sqrt(1 - (x/a)²)
    Ça c'est dans le cas de la moitié haute de l'ellipse
    exemple avec a=3 et b=1

    Pour le bas il faut prendre le négatif :
    y = - b * sqrt(1 - (x/a)²)

  5. #5
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int a = 50;
    int b = 30;
    for(int x = 0; x < b; x++){
    	int y = (int) (b * Math.sqrt(1 - (x/a) * (x/a)));
    	System.out.println(y);
    	graphics.fillRect(x+50, y+50, 3, 3);	
    }
    y = 30 ... chaque tour
    Je comprend pas le problème.
    Une idée?

  6. #6
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut
    Le problème est que tu utilises des int pour faire tes calculs. Ainsi x/a vaut toujours 0 car x plus petit que a, et donc tu as toujours y=bUtilise plutôt des Double.

  7. #7
    Membre éclairé Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 311
    Par défaut
    Ok, ça marche.
    Par contre c'est pas censé afficher la moitié de l'ellipse?
    A l'écran je n'ai qu'un quart l'ellipse.
    D'en haut à droite.

  8. #8
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut
    Super si ça marche on est sur la bonne voie

    Pour afficher la moitié en haut à gauche, il faut utiliser des x négatifs

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème pour tracer une fonction créneau
    Par Erzvinh dans le forum MATLAB
    Réponses: 8
    Dernier message: 02/02/2007, 16h53
  2. Problème pour tracer une courbe
    Par benji2642 dans le forum MATLAB
    Réponses: 2
    Dernier message: 04/12/2006, 18h23
  3. probleme pour tracer une ligne avec OleExcel
    Par blondelle dans le forum C++Builder
    Réponses: 6
    Dernier message: 18/08/2006, 19h10
  4. [Image] Algorithme pour déterminer une forme continue
    Par wizzmasta dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 25/04/2006, 15h56
  5. [Protocole TCP] Utilitaire pour Tracer une session
    Par =JBO= dans le forum Développement
    Réponses: 3
    Dernier message: 04/06/2005, 19h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo