sibi12
Messages postés337Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 avril 2006
-
20 avril 2005 à 14:03
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010
-
22 avril 2005 à 19:16
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 22 avril 2005 à 19:16
Ouaip...
En fait j'aurais mieux fait de poser ma source sur un forum maths ou un truc comme ça... Je pense que je vais la supprimer s'ici peu, elle aide pas beaucoup ^^
sibi12
Messages postés337Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 avril 2006 22 avril 2005 à 11:44
ahh oki j'avais mal compris autant pour moi. Je pensais que ct pour savoir si on arriverai à l'infini.
sinon en y repensant g dit une grosse couille... 3 points sont tjs coplanaire...
ben comme tu viens de le dire la reponse est clairement non pour des entiers.
On peu facilement etendre au nombre rationnel vu que ce ne sont que des fractions de nombre entier. on peut donc changer le repere en "zoomant" d'un facteur qui est le ppcm des diviseur des coordonnées de chaque point et on voit qu'on pave egalement Z².
Pour les irrationnels... c'est une autre affaire... en fait ça peut facilement se reduire a une demonstration qui releve de l'algebre : si une combinaision lineaire entirèe de nombre irrationnel remplissent R ou non. Je vais voir ce que je peux trouver. mais dans ce cas là ton programme ne te sera pas d'une grande utilité vu qu'il y a une infinité de réel entre 2 réel distinct.
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 21 avril 2005 à 12:43
Euh en fait je crois que la réponse est "non"...
Je m'explique :
On considère que les quatre points de départ ont des coordonnées entières. Comme on peut le voir dans la fonction FixPointsToCompletePar, les coordonnées des nouveaux points sont calculées par addition est soustraction. Les nouveaux points auront donc aussi des coordonnées entières.
On pavera donc au maximum Z²...
sibi12
Messages postés337Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 avril 2006 21 avril 2005 à 00:28
Enf ait la premiere fois que j'ai lu la source ça me parraissait trop simple... je devais avoir louper un episode du developpement.
Reprenez moi si je me trompe :
Si on reprend l'exemple de Saros :
..o..
o..o
on peux propager vers la droite par exemple et on a :
..o..o..o..o
o..o..o..o..o
on remarque que la forme de départ se repete (logique quand on c que ce sont des parralélogramme). On peut faire la même chose dans un autre "sens" vers le haut par exemple. ce qui fait qu'on peut remplir l'espace selon 2 axes. vu que les figures se repete on peut, en repetant l'operation sur les autres points en suivant une direction remplir tout l'espace.
on peut propager dans un troisieme sens vu qu'on a 3 point de départ (voir exemple) ce qui veux dire que si on se trouve dans l'espace on rempli tout l'espace.
pour les matheux a peu de chose près, on peux considéré qu'on a la base d'un espace vectoriel. Si on a 2 vecteur lineairement independant on rempli R² si on en a 3 on rempli R³
PS : Si les 3 point sont coplanaire, tu ne sauras pas remplir l'espace.De même si tes points sont alignés tu ne saura pas remplir ton plan. C'est la seul limitation geometrique que je vois...
J'espere que j'ai bien compris la conjecture chocapic ^^
cs_Pingouin
Messages postés262Date d'inscriptionlundi 26 août 2002StatutMembreDernière intervention24 août 2005 20 avril 2005 à 22:29
Pensez pas la réponse à la conjecture du chocapic est 'oui' etant donné kon peut paver le plan avec des parallélogrammes ? Bon c'est sur ya ptet une limitation avec le procédé de construction mais je ne vois pas pkoi... Enfin je dis ca j'sais po mais bon. Qu'en pensez vous ?
@+
Pingouin
sibi12
Messages postés337Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 avril 2006 20 avril 2005 à 18:44
non non...pas en utilisant de getpixel...
SetDiBitTodevice te permet de doner un tableau en paramètre et d'afficher ton tableau..dc tu n'as qu'un seul appel pour tout ton algorithme au lieu de dessiner un point a chaque itération...
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 20 avril 2005 à 18:06
Justement j'y pensais cet aprem, c'est vrai que c'est complètement inutile de faire ça avec des contrôles, mais bon...
Je balancerais prochainement la version dessin.
Puis pour la vérification de la couleur avant le dessin, pourquoi pas... Mais je sais pas si ça raccourcit vraiment, car on rajoute à chaque fois un appel à la fonction qui récupère la couleur. Je verrai bien.
sibi12
Messages postés337Date d'inscriptionjeudi 19 décembre 2002StatutMembreDernière intervention15 avril 2006 20 avril 2005 à 14:03
Je serais toi je n'utiliserait pas la création dynamique pour un faire cela
je me dirigerait plutôt vers une methode de dessin. Je m'explique : tu crée une structure avec la position du point (encore mieux créer un module de classe mais on complique pour pas grand chose), tu crée un tableau de cette structure tu fait tout tes calculs et quand t'as finit tu dessine sur ta feuille tout tes points. je te conseil d'utiliser Get/SetDIBits qui sont beaucoup plus rapide.
Pour ne pas avoir plusieur fois le même point ce que je ferait personnellement, je dessinerai l'image en même temps que je calcul et en verifiant si l'image est noir a la coordonnée X Y tu c si il existe un point.
en gros, tu joue avec un tableau de points, appelon le A, et un tableau qui represente ton dessin. Quand tu crée un nouveau point, tu verifie si B(X, Y) est false ou pas, si oui tu rajoute le point (X,Y) dans ton tableau A et tu met un point noir a la bonne position dans B.
Quand t'as fini tu passe B à SetDIBitsToDevice.
22 avril 2005 à 19:16
En fait j'aurais mieux fait de poser ma source sur un forum maths ou un truc comme ça... Je pense que je vais la supprimer s'ici peu, elle aide pas beaucoup ^^
22 avril 2005 à 11:44
sinon en y repensant g dit une grosse couille... 3 points sont tjs coplanaire...
ben comme tu viens de le dire la reponse est clairement non pour des entiers.
On peu facilement etendre au nombre rationnel vu que ce ne sont que des fractions de nombre entier. on peut donc changer le repere en "zoomant" d'un facteur qui est le ppcm des diviseur des coordonnées de chaque point et on voit qu'on pave egalement Z².
Pour les irrationnels... c'est une autre affaire... en fait ça peut facilement se reduire a une demonstration qui releve de l'algebre : si une combinaision lineaire entirèe de nombre irrationnel remplissent R ou non. Je vais voir ce que je peux trouver. mais dans ce cas là ton programme ne te sera pas d'une grande utilité vu qu'il y a une infinité de réel entre 2 réel distinct.
21 avril 2005 à 12:43
Je m'explique :
On considère que les quatre points de départ ont des coordonnées entières. Comme on peut le voir dans la fonction FixPointsToCompletePar, les coordonnées des nouveaux points sont calculées par addition est soustraction. Les nouveaux points auront donc aussi des coordonnées entières.
On pavera donc au maximum Z²...
21 avril 2005 à 00:28
Reprenez moi si je me trompe :
Si on reprend l'exemple de Saros :
..o..
o..o
on peux propager vers la droite par exemple et on a :
..o..o..o..o
o..o..o..o..o
on remarque que la forme de départ se repete (logique quand on c que ce sont des parralélogramme). On peut faire la même chose dans un autre "sens" vers le haut par exemple. ce qui fait qu'on peut remplir l'espace selon 2 axes. vu que les figures se repete on peut, en repetant l'operation sur les autres points en suivant une direction remplir tout l'espace.
on peut propager dans un troisieme sens vu qu'on a 3 point de départ (voir exemple) ce qui veux dire que si on se trouve dans l'espace on rempli tout l'espace.
pour les matheux a peu de chose près, on peux considéré qu'on a la base d'un espace vectoriel. Si on a 2 vecteur lineairement independant on rempli R² si on en a 3 on rempli R³
PS : Si les 3 point sont coplanaire, tu ne sauras pas remplir l'espace.De même si tes points sont alignés tu ne saura pas remplir ton plan. C'est la seul limitation geometrique que je vois...
J'espere que j'ai bien compris la conjecture chocapic ^^
20 avril 2005 à 22:29
@+
Pingouin
20 avril 2005 à 18:44
SetDiBitTodevice te permet de doner un tableau en paramètre et d'afficher ton tableau..dc tu n'as qu'un seul appel pour tout ton algorithme au lieu de dessiner un point a chaque itération...
20 avril 2005 à 18:06
Je balancerais prochainement la version dessin.
Puis pour la vérification de la couleur avant le dessin, pourquoi pas... Mais je sais pas si ça raccourcit vraiment, car on rajoute à chaque fois un appel à la fonction qui récupère la couleur. Je verrai bien.
20 avril 2005 à 14:03
je me dirigerait plutôt vers une methode de dessin. Je m'explique : tu crée une structure avec la position du point (encore mieux créer un module de classe mais on complique pour pas grand chose), tu crée un tableau de cette structure tu fait tout tes calculs et quand t'as finit tu dessine sur ta feuille tout tes points. je te conseil d'utiliser Get/SetDIBits qui sont beaucoup plus rapide.
Pour ne pas avoir plusieur fois le même point ce que je ferait personnellement, je dessinerai l'image en même temps que je calcul et en verifiant si l'image est noir a la coordonnée X Y tu c si il existe un point.
en gros, tu joue avec un tableau de points, appelon le A, et un tableau qui represente ton dessin. Quand tu crée un nouveau point, tu verifie si B(X, Y) est false ou pas, si oui tu rajoute le point (X,Y) dans ton tableau A et tu met un point noir a la bonne position dans B.
Quand t'as fini tu passe B à SetDIBitsToDevice.
Pour plus d'info sur SetDIBitsToDevice : http://www.mentalis.org/apilist/SetDIBitsToDevice.shtml