cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008
-
13 avril 2008 à 03:55
opossum_farceur
Messages postés147Date d'inscriptionlundi 16 août 2004StatutMembreDernière intervention14 novembre 2009
-
22 avril 2008 à 00:47
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
opossum_farceur
Messages postés147Date d'inscriptionlundi 16 août 2004StatutMembreDernière intervention14 novembre 2009 22 avril 2008 à 00:47
J'ai indiqué ce lien au cas où quelques téméraires voudraient pousser plus loin la recherche; en ce qui me concerne, j'arrête là avec ce code, j'y ai passé trop de temps à mon avis, d'autant plus que ce sujet n'a pas l'air de passionner les foules (dommage!). Ceci dit, si le code existant recèle un bug malicieux, j'en assure la maintenance, il n'y a pas de soucis!
a++
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 21 avril 2008 à 21:58
Je me réjouis de voire vos améliorations!
Bonne soirée
opossum_farceur
Messages postés147Date d'inscriptionlundi 16 août 2004StatutMembreDernière intervention14 novembre 2009 21 avril 2008 à 19:55
@GillesWebmaster,
Merci pour la note!
"j'aurais mis une valeur plus petite que 1000"
C'est noté, j'y penserai si une mise à jour s'avère nécessaire.
Depuis la publication de ce script, j'ai découvert qu'il existait 2 manières d'écrire (dont une forcément erronée!) le nom des auteurs de l'algorithme.
Le résultat des requêtes suivantes donne, sur Google :
"douglas-peuker" : 6980 pages
"douglas-peucker" : 17100 pages
et rares sont les pages présentes à la fois dans les 2 recherches, alors qu'elles traitent manifestement de la même chose! Celà m'a permis d'accéder à de nouvelles informations, notamment qu'il est possible d'améliorer l'algorithme :
GillesWebmaster
Messages postés496Date d'inscriptionmercredi 30 juin 2004StatutMembreDernière intervention29 juillet 20091 21 avril 2008 à 07:07
ça c'est de l'algorithme!
Sur ta démo, j'aurais mis une valeur plus petite que 1000...
10/10 !!!
opossum_farceur
Messages postés147Date d'inscriptionlundi 16 août 2004StatutMembreDernière intervention14 novembre 2009 18 avril 2008 à 01:09
Salut,
J'ai donc étudié le code d'Anthony Cartmell à la loupe afin d'en améliorer les performances; résultat des courses : une "réduction" exécutée en un temps divisé par 3, l'occupation de la mémoire, divisée par 3 également (à vue de nez).
Moyens mis en oeuvre : passage des tableaux par références, suppression des calculs redondants et "dégraissage" de la POO (suppression de la classe "Vector" et création d'objets seulement quand c'est nécessaire).
A++
opossum_farceur
Messages postés147Date d'inscriptionlundi 16 août 2004StatutMembreDernière intervention14 novembre 2009 14 avril 2008 à 16:35
@CODEFALSE,
"Tu force le passage en text/html dans ta classe"
Ok, je ferai le nécessaire.
"Privilégie un acces private ou protected avec les méthodes magiques __get et __set"
Tu parles là du code d'Anthony Cartmell que je n'ai pas voulu trop chambouler; cependant, ne crois-tu pas qu'en faisant de la sorte, on va rajouter une couche logicielle supplémentaire pour accéder aux données? Comme je le mentionnais dans mon précédent commentaire, un vrai challenge serait d'améliorer les performances de ce code, ce qui passe par un réexamen de l'algo, la suppression des calculs redondants, et aussi un dégraissage au niveau de la POO (et là, je sens que je ne vais pas me faire que des amis!).
A++
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 20091 14 avril 2008 à 10:11
Vraiment bon travail :)
Quelques remarques :
Tu force le passage en text/html dans ta classe, ce que je te déconseille.
En effet on peux l'utiliser dans un autre usage (traitement xml qui doit travailler avec ta classe par exemple).
Par ailleur tu met tes variables de classe en publique, ce qui est déconseillé, car si durant le traitement, je modifie les valeurs de tes variables, je peux faire planter ton code. Privilégie un acces private ou protected avec les méthodes magiques __get et __set comme ca tu controle l'usage de ta classe :)
Ca mérite un 9/10
opossum_farceur
Messages postés147Date d'inscriptionlundi 16 août 2004StatutMembreDernière intervention14 novembre 2009 13 avril 2008 à 18:18
Salut,
Merci pour les compliments!
Cet algorithme est certes facile à comprendre, mais peut-être pas si facile que çà à implémenter. Trop content d'en trouver le code sur internet, je me suis contenté d'en vérifier le fonctionnement. Il serait cependant utile de l'étudier à la loupe afin d'essayer d'en améliorer les performances; en effet, avant de l'expérimenter sur les départements (constitués d'à peu près 1000 points chacun), j'ai commencé par le faire sur un contour de la France constitué de 20000 points, et là la moindre réduction s'effectuait, sur mon modeste PC, en une dizaine de secondes!
A noter que dans l'appli la tolérance 0 n'effectue aucune réduction et est donc la plus rapide.
A++
webdeb
Messages postés488Date d'inscriptionsamedi 5 avril 2003StatutMembreDernière intervention31 mars 20094 13 avril 2008 à 11:48
Que dire si ce n'est bravo !!!
10/10 pour moi ;)
pj27
Messages postés12Date d'inscriptionjeudi 16 février 2006StatutMembreDernière intervention 7 juillet 2008 13 avril 2008 à 09:46
Cet algorithme est juste très interessant et sa gestion dans ce code est aussi intéressant... Franchement, chapeau, c'est assez propre je trouve ;)
8/10
cs_yoman64
Messages postés592Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 4 décembre 2008 13 avril 2008 à 03:55
Source très intéressante, je ne connaissais pas cet algorythme. Il est très simple à comprendre (même pour moi qui n'est pas trop callé en maths :P).
Le résultat sur le démo est très réussis. En plus tu as laissé les copyrights d'origine, enfin quelqu'un qui respecte les copyrights , chapeau :)
22 avril 2008 à 00:47
a++
21 avril 2008 à 21:58
Bonne soirée
21 avril 2008 à 19:55
Merci pour la note!
"j'aurais mis une valeur plus petite que 1000"
C'est noté, j'y penserai si une mise à jour s'avère nécessaire.
Depuis la publication de ce script, j'ai découvert qu'il existait 2 manières d'écrire (dont une forcément erronée!) le nom des auteurs de l'algorithme.
Le résultat des requêtes suivantes donne, sur Google :
"douglas-peuker" : 6980 pages
"douglas-peucker" : 17100 pages
et rares sont les pages présentes à la fois dans les 2 recherches, alors qu'elles traitent manifestement de la même chose! Celà m'a permis d'accéder à de nouvelles informations, notamment qu'il est possible d'améliorer l'algorithme :
http://geometryalgorithms.com/Archive/algorithm_0205/algorithm_0205.htm
A++
21 avril 2008 à 07:07
Sur ta démo, j'aurais mis une valeur plus petite que 1000...
10/10 !!!
18 avril 2008 à 01:09
J'ai donc étudié le code d'Anthony Cartmell à la loupe afin d'en améliorer les performances; résultat des courses : une "réduction" exécutée en un temps divisé par 3, l'occupation de la mémoire, divisée par 3 également (à vue de nez).
Moyens mis en oeuvre : passage des tableaux par références, suppression des calculs redondants et "dégraissage" de la POO (suppression de la classe "Vector" et création d'objets seulement quand c'est nécessaire).
A++
14 avril 2008 à 16:35
"Tu force le passage en text/html dans ta classe"
Ok, je ferai le nécessaire.
"Privilégie un acces private ou protected avec les méthodes magiques __get et __set"
Tu parles là du code d'Anthony Cartmell que je n'ai pas voulu trop chambouler; cependant, ne crois-tu pas qu'en faisant de la sorte, on va rajouter une couche logicielle supplémentaire pour accéder aux données? Comme je le mentionnais dans mon précédent commentaire, un vrai challenge serait d'améliorer les performances de ce code, ce qui passe par un réexamen de l'algo, la suppression des calculs redondants, et aussi un dégraissage au niveau de la POO (et là, je sens que je ne vais pas me faire que des amis!).
A++
14 avril 2008 à 10:11
Quelques remarques :
Tu force le passage en text/html dans ta classe, ce que je te déconseille.
En effet on peux l'utiliser dans un autre usage (traitement xml qui doit travailler avec ta classe par exemple).
Par ailleur tu met tes variables de classe en publique, ce qui est déconseillé, car si durant le traitement, je modifie les valeurs de tes variables, je peux faire planter ton code. Privilégie un acces private ou protected avec les méthodes magiques __get et __set comme ca tu controle l'usage de ta classe :)
Ca mérite un 9/10
13 avril 2008 à 18:18
Merci pour les compliments!
Cet algorithme est certes facile à comprendre, mais peut-être pas si facile que çà à implémenter. Trop content d'en trouver le code sur internet, je me suis contenté d'en vérifier le fonctionnement. Il serait cependant utile de l'étudier à la loupe afin d'essayer d'en améliorer les performances; en effet, avant de l'expérimenter sur les départements (constitués d'à peu près 1000 points chacun), j'ai commencé par le faire sur un contour de la France constitué de 20000 points, et là la moindre réduction s'effectuait, sur mon modeste PC, en une dizaine de secondes!
A noter que dans l'appli la tolérance 0 n'effectue aucune réduction et est donc la plus rapide.
A++
13 avril 2008 à 11:48
10/10 pour moi ;)
13 avril 2008 à 09:46
8/10
13 avril 2008 à 03:55
Le résultat sur le démo est très réussis. En plus tu as laissé les copyrights d'origine, enfin quelqu'un qui respecte les copyrights , chapeau :)