From: <emm...@us...> - 2008-12-04 13:33:41
|
Revision: 4268 http://fudaa.svn.sourceforge.net/fudaa/?rev=4268&view=rev Author: emmanuel_martin Date: 2008-12-04 13:33:31 +0000 (Thu, 04 Dec 2008) Log Message: ----------- modification de l'algo de test de l'interpolation de profil a partir d'une trace : le profil g?\195?\169n?\195?\169r?\195?\169 est entir?\195?\168rement contenu dans la trace. Modified Paths: -------------- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/profile/InterpolationProfilTest.java Modified: branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/profile/InterpolationProfilTest.java =================================================================== --- branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/profile/InterpolationProfilTest.java 2008-12-04 11:09:38 UTC (rev 4267) +++ branches/FudaaModeleur_TC1Bis/fudaa_devel/ctulu/src/org/fudaa/ctulu/interpolation/profile/InterpolationProfilTest.java 2008-12-04 13:33:31 UTC (rev 4268) @@ -16,7 +16,7 @@ /** * @author Emmanuel MARTIN - * @version $Id:$ + * @version $Id$ */ public class InterpolationProfilTest { @@ -45,9 +45,12 @@ double y=cloud_.getY(i); double z=cloud_.getZ(i); Coordinate proj=projection(ptTrace1, ptTrace2, x, y, z); - pointProj.add(new Object[]{proj, i, dist(proj.x, proj.y, proj.z, x, y, z), dist(ptTrace1.getCoordinate(), proj), - enHaut(ptTrace1, ptTrace2, x, y, z)}); + // Si le point projet\xE9 est situ\xE9 sur la trace, on garde sinon on l'oublie. + if(proj!=null) + pointProj.add(new Object[]{proj, i, dist(proj.x, proj.y, proj.z, x, y, z), dist(ptTrace1.getCoordinate(), proj), + enHaut(ptTrace1, ptTrace2, x, y, z)}); } + // Tri des points projet\xE9s par rapport \xE0 la distance entre le point proj et // l'origine de la trace for (int i=0; i<pointProj.size(); i++) @@ -201,7 +204,11 @@ // Calcul du produit scalaire u et oa =k double k=(x-o.getX())*vecU.x+(y-o.getY())*vecU.y+(z-o.getZ())*vecU.z; // OP=ku - return new Coordinate(k*vecU.x+o.getX(), k*vecU.y+o.getY(), k*vecU.z+o.getZ()); + Coordinate p=new Coordinate(k*vecU.x+o.getX(), k*vecU.y+o.getY(), k*vecU.z+o.getZ()); + if(dist(o.getCoordinate(), p)+dist(p, e.getCoordinate())!=dist(o.getCoordinate(), e.getCoordinate())) + return null; + else + return p; } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |