begin process at 2010 02 09 22:48:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Multimédia

 > 

Java2D

 > 

point sur polyligne


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

point sur polyligne

mercredi 25 juillet 2007 à 16:50:16 | point sur polyligne

umafaid

Bonjour,

je réponds à ce forum parce que j'ai un problème assez similaire à ce que gracerare veut faire sauf que comme le recommande bouye, je n'utilise pas de Line2D mais ma propre classe Ligne qui est constituée d'un tableau d'entiers.

Alors j'ai essayé de faire des calculs mais ça ne marche pas. J'ai dû faire une erreur mais je ne sais à quel niveau

Voilà mon code

// p et pp sont les deux points de la ligne et ppp le point avec lequel on effectue la comparaison

public boolean appLigne(MonPoint p, MonPoint pp, MonPoint ppp)
{
    boolean res=false;
    float coef=0f; // coefficient directeur de la droite
    float a=0f;
    int xmin,xmax,ymin,ymax;

   coef = (float) ((float) (pp.y - p.y)) / ((float) (pp.x - p.x));
   a =  (float) ((p.y - (p.x * coef)) / 20f);
  
   int  verify = (int)  ((coef*ppp.x)+a);
   if(p.x<pp.x) {
       xmin=p.x;
       xmax=pp.x;  
   }
  
   else  xmin=pp.x;
            xmax=p.x;
  
   if(p.y<pp.y) {
       ymin=p.y;
       ymax=pp.y;
      
   }
   else  ymin=pp.y;
   ymax=p.y;
  
   if((ppp.y==verify) && (xmin<ppp.x) && (ppp.x<xmax) && (ymin<ppp.y) && (ppp.y<ymax)) {
       res = true;
          
   }
  
   return res;
}

public boolean contains(int x, int y) {
   
boolean verif = false;
MonPoint p = new MonPoint(x,y);

    for(int i=0; i<this.size-1; i++){
        if (appLigne(points[i],points[i+1],p)==true)
            verif=true;
    }

    return verif;
}



Est ce que quelqu'un saurait pourquoi, je n'obtiens pas un bon résultat?

Et une autre question pour la marge d'erreur à laisser, comment faire?

Merci d'avance pour l'aide.
lundi 30 juillet 2007 à 10:47:51 | Re : point sur polyligne

eplanet

"j'ai un problème assez similaire à ce que gracerare veut faire", c'est à dire.... Tu pourrais préciser quand même, on ne connais pas par coeur tous les sujets qui ont été postés...

Vince
lundi 30 juillet 2007 à 23:35:05 | Re : point sur polyligne

umafaid

en fait ce qu e je voulais c'est savoir si un point appartient à une polyligne, j'ai trouvé comment le faire mais il faut que je mette une marge d'erreur. Et j'aimerais savoir comment le faire


/**
 * vérifie qu'un point appartient à un segment
 * @param p point de début du segment
 * @param pp point de fin du segment
 * @param ppp point à comparer
 * @return true si le point appartient au segment, false sinon
 */
public boolean appLigne(MonPoint p, MonPoint pp, MonPoint ppp)
{
 boolean res=false;
 float coef=0f;
 float a=0f;
 int xmin,xmax,ymin,ymax;
 int marge=5;
 
   coef = (float) ((float) (pp.y - p.y)) / ((float) (pp.x - p.x));
   a =  (float) (p.y - (p.x * coef));
  
   int  verify = (int)  ((coef*ppp.x)+a);
  
   if(p.x<pp.x) {
    xmin=p.x;
    xmax=pp.x;  
   }
  
   else  xmin=pp.x;
      xmax=p.x;
   
   if(p.y<pp.y) {
    ymin=p.y;
    ymax=pp.y;
   
   }
   else  ymin=pp.y;
   ymax=p.y;
  
   if( ppp.y <= verify && ppp.y>=verify){
     if ((xmin<ppp.x) && (ppp.x<xmax) && (ymin<ppp.y) && (ppp.y<ymax))
    res = true;
    
   }
   return res;
}

/**
 * vérifie qu'un point appartient à la ligne
 * @param x abscisse du point
 * @param y ordonnée du point
 * @return true si le point appartient à la ligne, false sinon
 */
public boolean contains(int x, int y) {
 
boolean verif = false;
MonPoint p = new MonPoint(x,y);

 for(int i=0; i<this.size-1; i++){
  if (appLigne(points[i],points[i+1],p)==true)
   verif=true;
 }

 return verif;
}



Cette discussion est classée dans : int, float, monpoint, pp, ppp


Répondre à ce message

Sujets en rapport avec ce message

JAVA 3D ombre et lumière [ par redisdead2 ] Bonjour, Depuis peu de temps, je tente de créer un terrain en 3D. La première étape c'est passé dans la douleur, et la deuxième qui consiste à avoir d JAVA3D ombre et lumière 2 [ par redisdead2 ] Bonjour, Depuis peu de temps, je tente de créer un terrain en 3D. La première étape c'est passé dans la douleur, et la deuxième qui consiste à avoir d Probleme dans mon programme fractale [ par Jarod1980 ] Bonjour tout le monde,J'aurais besoin d'aide pour résoudre un petit problème. J'ai adapté un programme que j'ai fais en C (fractale de Julia) en Java. Probleme avec "possible loss of precision" [ par mleloc ] Bonjour a tous, j'ai un petit probleme avec ce morceau de code:class ZoneDessin extends Canvas{    float charge1;    float abscisse;    Point p;       transformer une string en un int ou un float? [ par chtieu62 ] Comment peut on faire pour changer une chaine de caractere en entier ou flottant?Est ce possible?Quelles méthodes?Quels imports?Merci C++ -> Java [ par christouilhe ] Bonjour à vous tous.J'ai une question à vous poser ...Il se trouve que je dois retranscrire un programme C++ en Java, mais je ne sais pas du tout comm imprimer sans fenetre de configuration d'imprimante [ par alain57 ] bonjour tout le monde,je cherche à imprimé le contenu HTML d'un JEditorPane directement en paysage sur une imprimante connecté au reseau.J'arrive a se int ou float ?? [ par amine1234Z ] Salut j'ai fait comme ca:int t1=0,i1=0,P1=0;-------------------------------------------------------------------------i1 = Integer.parseInt(MonText. probleme de serialization [ par hidalg007 ] bhen ce que je fais c'est tout simplement importr des listes d'objet deja définis et serializables et les modifier , mettre a joure la liste et reseri [urgent]passage de variable entre les class [ par developvbdebut ] Bonjour tout le mondeVoici la class Calculimport javax.swing.*;import java.awt.*;import java.awt.event.*; public class Calcul{<


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,406 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales