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

2D Java Discussion :

recuperer tous les points (X,Y) d'un dessin


Sujet :

2D Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 136
    Points : 52
    Points
    52
    Par défaut recuperer tous les points (X,Y) d'un dessin
    Bonjour

    Alors j'ai dessiner 8 lignes partant d'un seul point ( 4 lignes droite et 4 ligne en forme d'un cercle) je veux recuperer tous les point ainsi leur cordonnées x y de chaque lignes et les mètrent dans une liste , quelqu'un aurait une idée s'il vous plait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
       int margin = 100;
            int margin1 = 300;
            int top = 0 + margin;
            int bottom = canvas.getHeight() - margin;
            int left = 0 + margin1;
            int right = canvas.getWidth() - margin1;
            int centerX = x / 2;
            int centerY = y / 2;
            canvas.drawCircle(x / 2, y / 2, 50, paint1);
     
            canvas.drawLine(x/2,y/2,x/2,top,paint1);
            canvas.drawLine(x/2,y/2,x/2,bottom,paint1);
            canvas.drawLine(x/2,y/2,right,y/2,paint1);
            canvas.drawLine(x/2,y/2,left,y/2,paint1);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     int midX = 720 + ((290 - 720) / 2);
            int midY = 1230 + ((510 - 1230) / 2);
            float xDiff = midX - 720;
            float yDiff = midY - 1230;
            double angle = (Math.atan2(yDiff, xDiff) * (180 / Math.PI)) - 90;
            double angleRadians = Math.toRadians(angle);
            float pointX = (float) (midX + (-250) * Math.cos(angleRadians));
            float pointY = (float) (midY + (-350) * Math.sin(angleRadians));
     
     
            path1.moveTo(720, 1230);
            path1.cubicTo(720, 1230, pointX, pointY, 290, 510);
            Toast.makeText(this,pointX+""+" "+pointY,Toast.LENGTH_LONG).show();
            canvas.drawPath(path, paint);
     
     
            int midX2 = 720 + ((290 - 720) / 2);
            int midY2 = 1230 + ((1950 - 1230) / 2);
            float xDiff2 = midX2 - 720;
            float yDiff2 = midY2 - 1230;
            double angle2 = (Math.atan2(yDiff2, xDiff2) * (180 / Math.PI)) - 90;
            double angleRadians2 = Math.toRadians(angle2);
            float pointX2 = (float) (midX2 + (250) * Math.cos(angleRadians2));
            float pointY2 = (float) (midY2 + (350) * Math.sin(angleRadians2));
     
            path1.moveTo(720, 1230);
            path1.cubicTo(720, 1230, pointX2, pointY2, 290, 1950);
            canvas.drawPath(path2, paint);
     
     
            int midX3 = 720 + ((1200 - 720) / 2);
            int midY3 = 1230 + ((1980 - 1230) / 2);
            float xDiff3 = midX3 - 720;
            float yDiff3 = midY3 - 1230;
            double angle3 = (Math.atan2(yDiff3, xDiff3) * (180 / Math.PI)) - 90;
            double angleRadians3 = Math.toRadians(angle3);
            float pointX3 = (float) (midX3 + (-250) * Math.cos(angleRadians3));
            float pointY3 = (float) (midY3 + (-350) * Math.sin(angleRadians3));
     
            path1.moveTo(720, 1230);
            path1.cubicTo(720, 1230, pointX3, pointY3, 1200, 1980);
            canvas.drawPath(path3, paint);
     
            int midX1 = 720 + ((1200 - 720) / 2);
            int midY1 = 1230 + ((510 - 1230) / 2);
            float xDiff1 = midX1 - 720;
            float yDiff1 = midY1 - 1230;
            double angle1 = (Math.atan2(yDiff1, xDiff1) * (180 / Math.PI)) - 90;
            double angleRadians1 = Math.toRadians(angle1);
            float pointX1 = (float) (midX1 + (250) * Math.cos(angleRadians1));
            float pointY1 = (float) (midY1 + (350) * Math.sin(angleRadians1));
     
            path1.moveTo(720, 1230);
            path1.cubicTo(720, 1230, pointX1, pointY1, 1200, 510);
            canvas.drawPath(path1, paint);

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Les segments obéissent aux lois d'une équation de droite, donc il suffit d'ouvrir un bouquin de math pour savoir comment retrouver l’équation a partir des extrémités d'un segment et puis calculer la liste des points entre ces deux extrémités et les stocker. Évidement a cela il faut ajouter aussi quand même le stroke (épaisseur du trait) et divers pixels supplémentaires suivant que l'antialiasing est actif ou pas mais bon, dans un premier temps, on peut faire sans.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

Discussions similaires

  1. recuperer tous les elements d'une JList
    Par ejaub dans le forum Composants
    Réponses: 2
    Dernier message: 01/02/2006, 23h12
  2. [MySQL] recuperer tous les id n'appartenant pas à une table
    Par Elianora la blanche dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/10/2005, 15h04
  3. Recuperer tous les fichiers du disque dur
    Par godik dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 04/10/2005, 20h18
  4. [fichier] Recuperer tous les bit un à un
    Par hutchuck dans le forum C++
    Réponses: 1
    Dernier message: 18/03/2005, 16h05
  5. [DOM IE]:recuperer tous les input de type checkbox
    Par sleepy2002 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/12/2004, 18h38

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