Changement de repere
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

Changement de repere



  1. #1
    Zenol

    Changement de repere


    ------

    Bonsoir,

    Je poste ce message car je me casse les dents sur un problème qui semble pourtant "simple".
    J'écris quelque chose sur le simplex noise, et pour ce faire j'ai besoin d'expliciter un changement de repère en dimension N.

    Mais voila, je bute dans le cas bidimensionnel

    Le problème est simple. J'ai un repère orthonormé que je visualise comme un joli paquet de triangles isocèles, et je veut exprimer la coordonnée d'un point dans le repère qui est le repère construit en :

    -Prenant 1 sur la diagonale y=x avec pour une des deux extrémités O
    -Traçant deux triangles équilatéraux sur ce segment
    -Prenant le cote(différent de l'axe y=x) le plus proche de l'axe comme axe

    De même pour l'axe (L'angle est donc de 120 degrés)

    Bref, pour moi c'est une simple application linéaire et il est facile de sortir une matrice, mais parmi tout les documents que j'ai trouve sur le sujet, on trouve une étrange formule, de la forme :




    Cette jolie formule (passage du repère orthonormé au repère de triangles équilatéraux, mais la réciproque a la même forme) est très jolies car très pratique a calcule sur un PC (une seule multiplication...)

    Mais est-elle exacte? Et surtout pourquoi ?(est-ce une approximation? un changement d'échelle? une valeur au hasard[qui fonctionne très bien, ou alors aucun informaticien ne sais faire un changement de repère correcte...])

    Et enfin, comment traiter le cas de la dimension N, ou l'on partage un N-cube (pour n=4 c'est l'hypercube, et c'est la que l'algorithme commence a être utile) en simplex (figure élémentaire pouvant paver l'espace de dimension n avec n+1 sommets)

    Bref, beaucoup de questions pas vraiment évidente pour les quels j'aimerais un vrai éclaircissement, ne souhaitant pas écrire de bêtises.

    Je vous joint un schéma extrait d'un document anglophone de référence pour le simplex noise, histoire de visualiser les deux repères dont je parle.

    -----
    Images attachées Images attachées  
    Dernière modification par Zenol ; 02/11/2010 à 20h10.

  2. #2
    Zenol

    Re : Changement de repere

    La question est peut-être mal posée?

  3. #3
    invite6afd363c

    Re : Changement de repere

    Bonsoir,

    Je ne sais pas si tu as résolu ton problème (le post est ancien, je le lis par hasard), mais voici quelques éléments :

    pour moi c'est une simple application linéaire et il est facile de sortir une matrice
    Application linéaire ? Pourquoi ? Il s'agit d'un changement de repère, la matrice à chercher est une matrice de passage.

    Mais est-elle exacte?
    La formule que tu cites n'est pas correcte. Il suffit de prendre les points et pour s'en convaincre.

    Après quelques gribouillages, je trouve :




    (Calculs intermédiaires dispos si tu veux.)

    Pour ce qui est de la dimension (j'imagine ?), ça il faudrait déjà expliciter le procédé de construction du nouveau repère.

    @+

  4. #4
    Zenol

    Re : Changement de repere

    Bonsoir,

    Citation Envoyé par manu_joe Voir le message
    Je ne sais pas si tu as résolu ton problème (le post est ancien, je le lis par hasard)
    Non, toujours par résolut mais le problème est maintenant bien mieux posé. Il est question de trouver la meilleur de l'endomorphisme correspondant au changement de base dont la matrice est de la forme


    Citation Envoyé par manu_joe Voir le message
    Application linéaire ? Pourquoi ? Il s'agit d'un changement de repère, la matrice à chercher est une matrice de passage.
    Il y a un isomorphisme entre les endomorphismes de et les matrices .

    Citation Envoyé par manu_joe Voir le message
    La formule que tu cites n'est pas correcte. Il suffit de prendre les points et pour s'en convaincre.
    Oui oui, tout à fait, j'en suis arrivé à cette conclusion. En fait, il est question d'effectuer ce changement de base de nombreuses fois, et multiplier par une matrice est vraiment couteux, d'où l’intérêt de cette formule.

    Citation Envoyé par manu_joe Voir le message
    Après quelques gribouillages, je trouve :




    (Calculs intermédiaires dispos si tu veux.)

    Pour ce qui est de la dimension (j'imagine ?), ça il faudrait déjà expliciter le procédé de construction du nouveau repère.
    Pour les calculs, je te crois sur parole. J'avais trouvé la dite matrice de passage en exprimant l'angle et en fesant la projection. De memoire il y avais du cos et du sin de
    , mais ca fait un petit moment.

    Pour le procédé, il s'agit de construire une base formé des arêtes d'un simplexe régulier. Les arêtes doivent être normé.

    Je n'ai pas encore eu le temps de cherché mais on ma conseillé d'essayer quelque chose avec les normes sur les matrices(peut-etre celle qui se comporte bien avec le produit), pour minimiser l'écart entre le "vrai" endomorphisme, et celui à la forme particulière que je cherche.

    Quoi qu'il en soit, merci pour ta réponse

  5. A voir en vidéo sur Futura
  6. #5
    invite6afd363c

    Re : Changement de repere

    Citation Envoyé par Zenol Voir le message
    Bonsoir,


    Non, toujours par résolut mais le problème est maintenant bien mieux posé. Il est question de trouver la meilleur de l'endomorphisme correspondant au changement de base dont la matrice est de la forme

    Je comprends pas Qui est ? Il appartient à quelle structure ?


    Citation Envoyé par Zenol Voir le message
    Il y a un isomorphisme entre les endomorphismes de et les matrices .

    Ok. Je suis dans le pâté, j'avais pas pensé à l'identification 'matrice de passage'-'transformation de l'espace'.


    Citation Envoyé par Zenol Voir le message
    Pour les calculs, je te crois sur parole. J'avais trouvé la dite matrice de passage en exprimant l'angle et en fesant la projection. De memoire il y avais du cos et du sin de
    , mais ca fait un petit moment.
    C'est ça

    Citation Envoyé par Zenol Voir le message
    Pour le procédé, il s'agit de construire une base formé des arêtes d'un simplexe régulier. Les arêtes doivent être normé.

    Alors pour ok, c'est ton exemple. Par contre, déjà pour ça devient compliqué puisqu'on ne peut pas paver l'espace euclidien de dimension 3 avec des tétraèdres réguliers. Donc pour la dimension avec quelconque ça devient vraiment "bizarre". Si tu ne tiens pas à l'espace euclidien, il faudrait peut-être regarder du côté hyperbolique (mais je sais pas, hein, c'est juste une idée comme ça).


    Citation Envoyé par Zenol Voir le message
    Je n'ai pas encore eu le temps de cherché mais on ma conseillé d'essayer quelque chose avec les normes sur les matrices(peut-etre celle qui se comporte bien avec le produit), pour minimiser l'écart entre le "vrai" endomorphisme, et celui à la forme particulière que je cherche.
    Ça je connais pas mais ton problème m'a plu parce qu'il me rappelle des trucs sur les maillages ou pavages de l'espace. (Juste en passant : c'est quoi les "vrai" et "faux" endomorphismes ?) Mais bon, comme je sais pas à quoi te sert ce changement de repère, je dis ça je dis rien

  7. #6
    Zenol

    Re : Changement de repere

    Citation Envoyé par manu_joe Voir le message
    Je comprends pas Qui est ? Il appartient à quelle structure ?
    Constante réel positive, à déterminer. En d'autres termes, l'inconnue.

    Citation Envoyé par manu_joe Voir le message
    Ça je connais pas mais ton problème m'a plu parce qu'il me rappelle des trucs sur les maillages ou pavages de l'espace. (Juste en passant : c'est quoi les "vrai" et "faux" endomorphismes ?) Mais bon, comme je sais pas à quoi te sert ce changement de repère, je dis ça je dis rien
    Oui c'est une histoire de pavage. à chaque sommet on associe un poid, pseudo aléatoire, qui pondère une fonction radiale construite de façon à s'annuler vers le centre du simplexe.

    Pour le coup du vrai/faux, je voulais simplement dire :
    -La matrice de passage est celle que tu a déterminé, c'est le "vrai" changement de base.
    -La matrice que j'aimerais est une approximation de la précédente, en présence d'une certaine contrainte (Sa forme en ).


    Citation Envoyé par manu_joe Voir le message
    Alors pour ok, c'est ton exemple. Par contre, déjà pour ça devient compliqué puisqu'on ne peut pas paver l'espace euclidien de dimension 3 avec des tétraèdres réguliers. Donc pour la dimension avec quelconque ça devient vraiment "bizarre". Si tu ne tiens pas à l'espace euclidien, il faudrait peut-être regarder du côté hyperbolique (mais je sais pas, hein, c'est juste une idée comme ça).
    Ah, dans ce cas alors le caractère régulier ne doit pas être très important O.o

    En fait, je te donne la méthode exacte ;
    On prend un n-cube. On le subdivise en simplex (dans le cas plan, deux triangles isocèles, dans le cas 3D, un petit nombre de tétraèdre, en divisant ses faces en triangles isocèles), puis l'on prend les coté de ces simplex obtenu comme vecteur directeur de la base. Par la suite, on transforme le plan de façon à ce que chaque vecteur devienne unitaire, et que sa direction devienne "toute jolie". (Dans le cas plan, passage de deux triangles isocèlles à deux triangles équilatéraux unitaires.

  8. #7
    invite6afd363c

    Re : Changement de repere

    Citation Envoyé par Zenol Voir le message
    Constante réel positive, à déterminer. En d'autres termes, l'inconnue.

    Si je comprends bien, il te faut une matrice plus simple que celle en et pour que ton algorithme soit moins coûteux en ressources. Néanmoins, tu tiens vraiment à ce ? Parce que déjà dans le cas , si tu prends comme constante , t'es obligé d'ajouter . Ça te fait pas un peu trop comme approximation ?


    Citation Envoyé par Zenol Voir le message
    Oui c'est une histoire de pavage. à chaque sommet on associe un poid, pseudo aléatoire, qui pondère une fonction radiale construite de façon à s'annuler vers le centre du simplexe.

    Ok.


    Citation Envoyé par Zenol Voir le message
    Pour le coup du vrai/faux, je voulais simplement dire :
    -La matrice de passage est celle que tu a déterminé, c'est le "vrai" changement de base.
    -La matrice que j'aimerais est une approximation de la précédente, en présence d'une certaine contrainte (Sa forme en ).

    Ok aussi. Là c'est plus clair (enfin pour moi ).


    Citation Envoyé par Zenol Voir le message
    Ah, dans ce cas alors le caractère régulier ne doit pas être très important O.o

    Dans ce cas, je ne comprends pas trop pourquoi ça devient plus simple d'employer cette méthode. Si on n'a pas besoin d'un simplexe régulier, alors dans le plan pourquoi on se contente pas d'un triangle rectangle ? Peux-tu m'en dire un peu plus ?


    Citation Envoyé par Zenol Voir le message
    En fait, je te donne la méthode exacte ;
    On prend un n-cube. On le subdivise en simplex (dans le cas plan, deux triangles isocèles, dans le cas 3D, un petit nombre de tétraèdre, en divisant ses faces en triangles isocèles), puis l'on prend les coté de ces simplex obtenu comme vecteur directeur de la base. Par la suite, on transforme le plan de façon à ce que chaque vecteur devienne unitaire, et que sa direction devienne "toute jolie". (Dans le cas plan, passage de deux triangles isocèlles à deux triangles équilatéraux unitaires.
    Donc, je reprends :
    • dans on découpe un carré en triangles et on les rend équilatéraux,
    • dans on découpe un -cube en -simplexes et on les rend "plus jolis".
    Ok, mais si "plus jolis" c'est pas "réguliers", c'est quoi alors ?

    Je vois pas comment trouver ta matrice sans passer par la définition totale de ces simplexes.

    Juste une idée, comme ça (le passage triangle rectangle -> équilatéral m'a fait penser à un cours sur Riemann que je fais à mes élèves de terminales S) :
    En 2D, au lieu de se placer dans un plan euclidien et si on se place sur une sphère, alors les triangles rectangles sont équilatéraux. Du coup, ça serait pas plus simple de changer complètement de support (euclidien -> sphérique) et de travailler ensuite avec des projections ?

    T'as déjà rédigé quelque chose à ce sujet (même en brouillon) ? Parce que là, ton problème m'intéresse (j'aime les machins sur les polytopes) mais j'ai l'impression que le fond m'échappe.

  9. #8
    Zenol

    Re : Changement de repere

    Citation Envoyé par manu_joe Voir le message
    Si je comprends bien, il te faut une matrice plus simple que celle en et pour que ton algorithme soit moins coûteux en ressources. Néanmoins, tu tiens vraiment à ce ? Parce que déjà dans le cas , si tu prends comme constante , t'es obligé d'ajouter . Ça te fait pas un peu trop comme approximation ?
    Oui, ce +1 permet d'avoir une jolie matrice inverse (même structure) et de résumer la calcul de l'image de à :


    Citation Envoyé par manu_joe Voir le message
    Dans ce cas, je ne comprends pas trop pourquoi ça devient plus simple d'employer cette méthode. Si on n'a pas besoin d'un simplexe régulier, alors dans le plan pourquoi on se contente pas d'un triangle rectangle ? Peux-tu m'en dire un peu plus ?
    Je crois qu'en fait, on souhaite qu'il soit aussi régulier que possible. Apparemment, il n'y a pas un gros "trous" quand on veut paver avec des 3-simplex. On peut toléré quelques approximation. Le but étant de la génération de texture à n dimensions, le tout est que approximation ne soit pas visible à l'oeil nue.

    Citation Envoyé par manu_joe Voir le message
    Donc, je reprends :
    • dans on découpe un carré en triangles et on les rend équilatéraux,
    • dans on découpe un -cube en -simplexes et on les rend "plus jolis".
    Ok, mais si "plus jolis" c'est pas "réguliers", c'est quoi alors ?
    Rendre les coté unitaires, et les angles autour du point que l'on a prit comme origine tel que les simplex soient régulier, je crois. C'est à l'origine un problème d'info et il n'y a aucun formalisme là dessu, du coup, ce que je propose comme conditions, c'est ce que j'ai comprit du procédé.

    Citation Envoyé par manu_joe Voir le message
    Je vois pas comment trouver ta matrice sans passer par la définition totale de ces simplexes.
    En fait, n'ayant rien trouvé en dimension 2 je n'ai pas essayer en dimension 3. Mais je pense que les conditions que j'ai proposé juste au dessus devraient suffire.

    Citation Envoyé par manu_joe Voir le message
    Juste une idée, comme ça (le passage triangle rectangle -> équilatéral m'a fait penser à un cours sur Riemann que je fais à mes élèves de terminales S) :
    En 2D, au lieu de se placer dans un plan euclidien et si on se place sur une sphère, alors les triangles rectangles sont équilatéraux. Du coup, ça serait pas plus simple de changer complètement de support (euclidien -> sphérique) et de travailler ensuite avec des projections ?
    Peut-etre que ce serait effectivement plus simple pour raisoner, mais c'est la formule de calcul de la fonction radiale qui risque d'en patire.
    Heureux d'avoir put éveiller la curiosité d'un enseignant de lycée

    Citation Envoyé par manu_joe Voir le message
    T'as déjà rédigé quelque chose à ce sujet (même en brouillon) ? Parce que là, ton problème m'intéresse (j'aime les machins sur les polytopes) mais j'ai l'impression que le fond m'échappe.
    Ok, alors j'ai deux document très intéressent en anglais d'où me vient ce problème. Le résultat de ce que j'ai déduit est rédigé dans un p'tit PDF. Le plus gros concerne l'info et au final il ne doit pas rester plus de 4 pages sur ce sujet. Voici les liens :

    L'article qui traite de l'algorithme et explique l'aspect géométrique :
    http://webstaff.itn.liu.se/~stegu/si...mplexnoise.pdf
    p4 et p5. Il est question d'écraser les simplex le long d'une diagonale .
    Le coup des fonctions radiales y est aussi expliqué.

    L'article de Mr Perlin :
    http://mrl.nyu.edu/~perlin/paper445.pdf
    p16 à 19, que ma conseillé l'auteur du premier document.
    Mais je conseil de surtout regarder à partir de p18, "Simplex grid:".

    Mes notes :
    http://zenol.fr/dl/perlin_noise.pdf
    p30, 31, 32 pour ce qui nous intéresse.

    Le but est d'appliquer une fonction radiale centré en chaqu'un des sommets du simplex, et de sommer l'effet de ces trois fonctions au point (x,y,z) que l'on considère. (En fait, on applique la fonction radiale dans la base des triangles équilatéraux, centré en chacun des trois sommets . De cette façon, les trois fonctions s'annulent au centre du dit triangle.)
    Nb : En réalité, ces fonctions servent à pondérer trois produit scalaire, mais ce détaille est secondaire.

  10. #9
    invite6afd363c

    Re : Changement de repere

    Citation Envoyé par Zenol Voir le message
    Oui, ce +1 permet d'avoir une jolie matrice inverse (même structure) et de résumer la calcul de l'image de à :

    Oui, je vois l'intérêt du .


    Citation Envoyé par Zenol Voir le message
    Je crois qu'en fait, on souhaite qu'il soit aussi régulier que possible. Apparemment, il n'y a pas un gros "trous" quand on veut paver avec des 3-simplex. On peut toléré quelques approximation. Le but étant de la génération de texture à n dimensions, le tout est que approximation ne soit pas visible à l'oeil nue.

    Ça ça me pose de gros problèmes.

    1. On garde les "trous". Alors on est dans un espace non connexe. Et on peut se retrouver avec un point dans un trou. Soit on oublie le point, et alors on se retrouve avec un espace discret, on se contente des points qui ne sont pas dans des trous et on estime que les trous sur le rendu sont invisibles à l'oeil nu. Soit on "sort" ce point du trou et on l'envoie dans un simplexe mais ça implique de le localiser dans le trou (ce qui n'est pas possible sauf si on colmate les trous (pb.2) ou si on le fait avant le changement de repère (ce qui rend improductif le changement de repère et donc il vaut mieux oublier ce point)). Mpppf... c'est pas très clair

    2. On ne garde pas les "trous". Alors il faut dilater nos simplexes de façon à ce qu'on puisse bien être dans un espace connexe. Le problème c'est qu'on ne peut pas dilater tous les simplexes de la même manière et sans considération du repère de départ. Donc il y a un gros boulot à faire au tout début pour bien définir la déformation des simplexes (à la limite ça a l'air faisable). Après, on peut essayer de pondérer les sommets de ces simplexes (j'ai cru comprendre que c'est ces sommets qui sont importants) de sorte que ça compense la différence de mesure des angles, la différence de longueur des cotés, la différence d'aire des faces, etc. (puisqu'on est en dimension ). La question c'est de savoir si c'est faisable. J'ai presque envie de dire oui, puisque ça revient à courber localement les simplexes et donc l'espace.


    Citation Envoyé par Zenol Voir le message
    Rendre les coté unitaires, et les angles autour du point que l'on a prit comme origine tel que les simplex soient régulier, je crois. C'est à l'origine un problème d'info et il n'y a aucun formalisme là dessu, du coup, ce que je propose comme conditions, c'est ce que j'ai comprit du procédé.

    Je vais peut-être paraitre débile, mais... Comment peut-on programmer ça sans formalisme ?


    Citation Envoyé par Zenol Voir le message
    En fait, n'ayant rien trouvé en dimension 2 je n'ai pas essayer en dimension 3. Mais je pense que les conditions que j'ai proposé juste au dessus devraient suffire.

    On peut essayer. De toute façon, on perd pas grand-chose. Même si ça échoue ça permet toujours d'apprendre des choses.


    Citation Envoyé par Zenol Voir le message
    Peut-etre que ce serait effectivement plus simple pour raisoner, mais c'est la formule de calcul de la fonction radiale qui risque d'en patire.

    Je sais pas si c'était une bonne idée. Parce qu'on gagne sur les cotés qui sont tous de norme 1, les angles sont tous égaux (et droits), mais... ça demande peut-être trop de calculs pour les projections et faire en sorte que le rendu ne soit pas "tout tordu" et étiré n'importe comment. Finalement les géométries hyperboliques sembleraient plus adaptées (voir le pb.2 plus haut).


    Citation Envoyé par Zenol Voir le message
    Heureux d'avoir put éveiller la curiosité d'un enseignant de lycée

    Enseigante, mais c'est ma faute j'ai pas écrit mon pseudo en rose En tout ca, oui, ça a éveillé ma curiosité, ce qui n'était pas arrivé depuis longtemps.


    Citation Envoyé par Zenol Voir le message
    Ok, alors j'ai deux document très intéressent en anglais d'où me vient ce problème. Le résultat de ce que j'ai déduit est rédigé dans un p'tit PDF. Le plus gros concerne l'info et au final il ne doit pas rester plus de 4 pages sur ce sujet. Voici les liens :

    L'article qui traite de l'algorithme et explique l'aspect géométrique :
    http://webstaff.itn.liu.se/~stegu/si...mplexnoise.pdf
    p4 et p5. Il est question d'écraser les simplex le long d'une diagonale .
    Le coup des fonctions radiales y est aussi expliqué.

    L'article de Mr Perlin :
    http://mrl.nyu.edu/~perlin/paper445.pdf
    p16 à 19, que ma conseillé l'auteur du premier document.
    Mais je conseil de surtout regarder à partir de p18, "Simplex grid:".

    Mes notes :
    http://zenol.fr/dl/perlin_noise.pdf
    p30, 31, 32 pour ce qui nous intéresse.

    J'ai eu une grosse journée, donc j'ai survolé de très très loin et je crois que mon incompétence en informatique me fait passer à côté de pas mal de choses. Je regarderai plus en détail un peu plus tard et à tête reposée.


    Citation Envoyé par Zenol Voir le message
    Le but est d'appliquer une fonction radiale centré en chaqu'un des sommets du simplex, et de sommer l'effet de ces trois fonctions au point (x,y,z) que l'on considère. (En fait, on applique la fonction radiale dans la base des triangles équilatéraux, centré en chacun des trois sommets . De cette façon, les trois fonctions s'annulent au centre du dit triangle.)
    Nb : En réalité, ces fonctions servent à pondérer trois produit scalaire, mais ce détaille est secondaire.
    Ça a l'air de ressembler à ce que je disais plus haut. Peut-être que ça commence à avancer cette histoire... (au moins dans ma tête parce que ça fait un bail que j'ai pas fait ce genre de trucs !)

    Bon, sur ce, je vais me pieuter... Good nite !

  11. #10
    Zenol

    Re : Changement de repere

    Citation Envoyé par manu_joe Voir le message
    Ça ça me pose de gros problèmes.

    1. On garde les "trous". Alors on est dans un espace non connexe. Et on peut se retrouver avec un point dans un trou. Soit on oublie le point, et alors on se retrouve avec un espace discret, on se contente des points qui ne sont pas dans des trous et on estime que les trous sur le rendu sont invisibles à l'oeil nu. Soit on "sort" ce point du trou et on l'envoie dans un simplexe mais ça implique de le localiser dans le trou (ce qui n'est pas possible sauf si on colmate les trous (pb.2) ou si on le fait avant le changement de repère (ce qui rend improductif le changement de repère et donc il vaut mieux oublier ce point)). Mpppf... c'est pas très clair

    2. On ne garde pas les "trous". Alors il faut dilater nos simplexes de façon à ce qu'on puisse bien être dans un espace connexe. Le problème c'est qu'on ne peut pas dilater tous les simplexes de la même manière et sans considération du repère de départ. Donc il y a un gros boulot à faire au tout début pour bien définir la déformation des simplexes (à la limite ça a l'air faisable). Après, on peut essayer de pondérer les sommets de ces simplexes (j'ai cru comprendre que c'est ces sommets qui sont importants) de sorte que ça compense la différence de mesure des angles, la différence de longueur des cotés, la différence d'aire des faces, etc. (puisqu'on est en dimension ). La question c'est de savoir si c'est faisable. J'ai presque envie de dire oui, puisque ça revient à courber localement les simplexes et donc l'espace.
    En fait, il n'y a pas vraiment de problème de trous ;
    Si l'on prend un cube, et que l'on place un repère orthonormé directe sur l'un de ses sommets. On peut ensuite transformer les simplex qui le compose en simplex régulier, ou même tout autre chose si l'on a envis (les auteurs parlent de comprimer les distances le long du vecteur (1,1,1), pour qu'après transformation, le point (1,1,1) du cube, situé à une distance sqrt(3), se retrouve en (1/sqrt(3), 1/sqrt(3), 1/sqrt(3) ). Sauf que j'ai pas bien comprit leurs bidouilles, parce qu'ils veulent envoyer (2,2,2) sur (1,1,1). Mais, il y a une histoire dans ce genre).

    On a donc un endomorphisme, et on peut exprimer les coordonnés de tout point P de façon unique dans la base canonique, et dans cette base "spéciale". Les coordonnées entières de la base spéciale correspondent aux sommets du maillage de l'espace. Donc, tout point est quelque part dans un simplex, et l'on a pas vraiment de soucis au niveau des "trous" si ils existent.

    (Du coup, cela revient à dire que les simplex ne sont pas vraiment régulier, qu'il y a une petite erreur introduite. Mais étant donné ce que l'on se permet déjà avec la matrice....)

    Citation Envoyé par manu_joe Voir le message
    Je vais peut-être paraitre débile, mais... Comment peut-on programmer ça sans formalisme ?
    Non, c'est une bonne question. Et bien, on vas dire que l'info serait plutôt expérimentale. On peut prendre une ou deux idées qui viennent à l'instin, les tester, et garder celle qui fonctionne le mieux.
    Chercher à construire un endomorphisme qui comprime les distances sur la diagonale fonctionne, et ça fonctionne même extrêmement bien pour les coefficients de K donné par Mr Perlin. Après, quand à savoir pourquoi, c'est là tout mon problème.

    Citation Envoyé par manu_joe Voir le message
    On peut essayer. De toute façon, on perd pas grand-chose. Même si ça échoue ça permet toujours d'apprendre des choses.
    J'espérais que comprendre le modèle 2D m'aurais permit de comprendre les versions "dimensions n".

    Citation Envoyé par manu_joe Voir le message
    Je sais pas si c'était une bonne idée. Parce qu'on gagne sur les cotés qui sont tous de norme 1, les angles sont tous égaux (et droits), mais... ça demande peut-être trop de calculs pour les projections et faire en sorte que le rendu ne soit pas "tout tordu" et étiré n'importe comment. Finalement les géométries hyperboliques sembleraient plus adaptées (voir le pb.2 plus haut).
    En fait, on cherche à placer des sommets dans R^3 de façon à ce que tous ces "grains" soient à peut près à la même distance les un des autres, et on cherche à le faire avec le moins de points possible (d'où les n-simplex, les polytopes au plus petit nombre de sommets possible.)

    Ensuite, c'est un peut si en chacun de ces sommets de l'espace, on avais un petit champs magnétique partant de chaque sommet (en fait, c'est un champ scalaire qui décrit l'intensité lumineuse.)* Ensuite, on a plus qu'à sommet les effets des n+1 points alentours (sommets du simplex qui contient le point), et on obtient la "couleur" associé au point.

    * En pratique, ce n'est pas un champ scalaire ;
    On fixe en chaque sommet un vecteur, on parle de gradient de couleur. Ensuite, on fait le produit scalaire entre le vecteur Point<->Sommet et le vecteur du sommet. Le résultat donne une intensité lumineuse entre -1 (noir) et 1 (blanc). Ce fameux résultat subit ensuite une fonction radiale qui décroit très rapidement quand on s'éloigne du sommet. (CF : le dessin dans le tout premier lien, où l'on voit un petit point blanc/noir dans un fond gris)

    Citation Envoyé par manu_joe Voir le message
    J'ai eu une grosse journée, donc j'ai survolé de très très loin et je crois que mon incompétence en informatique me fait passer à côté de pas mal de choses. Je regarderai plus en détail un peu plus tard et à tête reposée.
    C'est pas très agréable à lire, et pas très claire je trouve. Mais je n'ai rien de mieux :/

    Nb : Je me suis trompé de 2ème lien. Je voulais parler de la page 18/19 de ce document ci : http://webstaff.itn.liu.se/~stegu/TNM084-2009/ch02.pdf

  12. #11
    invite6afd363c

    Smile Re : Changement de repere

    J'ai toujours pas lu tes liens :/

    Mais j'ai eu une idée ce matin en accompagnant mon fils à l'école.


    Citation Envoyé par Zenol Voir le message
    J'espérais que comprendre le modèle 2D m'aurais permit de comprendre les versions "dimensions n".

    On se lance (cf. plus bas)...


    Citation Envoyé par Zenol Voir le message
    En fait, on cherche à placer des sommets dans R^3 de façon à ce que tous ces "grains" soient à peut près à la même distance les un des autres, et on cherche à le faire avec le moins de points possible (d'où les n-simplex, les polytopes au plus petit nombre de sommets possible.)

    Ensuite, c'est un peut si en chacun de ces sommets de l'espace, on avais un petit champs magnétique partant de chaque sommet (en fait, c'est un champ scalaire qui décrit l'intensité lumineuse.)* Ensuite, on a plus qu'à sommet les effets des n+1 points alentours (sommets du simplex qui contient le point), et on obtient la "couleur" associé au point.

    * En pratique, ce n'est pas un champ scalaire ;
    On fixe en chaque sommet un vecteur, on parle de gradient de couleur. Ensuite, on fait le produit scalaire entre le vecteur Point<->Sommet et le vecteur du sommet. Le résultat donne une intensité lumineuse entre -1 (noir) et 1 (blanc). Ce fameux résultat subit ensuite une fonction radiale qui décroit très rapidement quand on s'éloigne du sommet. (CF : le dessin dans le tout premier lien, où l'on voit un petit point blanc/noir dans un fond gris)

    Ça revient exactement à ce que je disais dans mon pb 2, mais sans s'embêter à faire des simplexes réguliers et à les recoller. On rend régulier un simplexe non régulier en courbant localement l'espace. Pour rendre courbe un espace euclidien de façon artificielle (c'est-à-dire sans le courber réellement, sinon il n'est plus euclidien), on pondère des points.

    Analogie : en relativité générale on apprend que l'espace est localement courbe. Une masse à un endroit courbe l'espace (imagine une balle de pétanque sur un drap tendu, le drap se courbe). Si cette masse est une étoile, les rayons de lumière sont courbés par la masse de l'étoile (d'où le champ qui décrit l'intensité lumineuse). Dès lors, les droites de l'espace sont des géodésiques à courbure variable, mais cette courbure on la décrit à l'aide d'une pondération.

    Pour ce qui est de la 2D, donc, on prend la diagonale d'un carré de coté 1 (parallèle à la droite ). Sa longueur est évidemment . On décide que sa longueur vaut désormais 1 (et comme ça nos deux triangles rectangles isocèles deviennent équilatéraux), on donc multiplié par . On choisit dans quel sens on contracte . On va dire qu'on ramène vers en ne bougeant que (le schéma en pièce jointe à ton post #1 induisait en erreur puisque tous les points s'y déplaçaient). Le problème c'est qu'on se retrouve (en géométrie euclidienne) avec des cotés et de longueur . On décide que non. On garde leur longueur 1. et sont équilatéraux mais la seule solution pour ça c'est de courber l'espace.

    Là c'est pas très rigoureux ce que je vais écrire, mais ça donne une idée du truc. On va essayer de trouver un autre modèle explicatif. On prend un triangle équilatéral, ses cotés de longueur 1. On imagine que notre triangle est en matière élastique. On fixe bien les sommets et (genre avec un clou ), et on tire fort sur le sommet de sorte que . On obtient rectangle isocèle (donc le triangle initial sans transformation), et on va dire qu'il est dilaté. On fait ça avec plein (mais alors vraiment plein plein) de triangles équilatéraux, on les dilate et on les colle entre eux. On obtient alors le pavage traditionnel du plan. Maintenant, comme on est mal intentionné, on enlève tous des clous de sorte que tous les triangles se contractent et soient équilatéraux, mais l'espace est courbe localement(ce qu'on peut formaliser).

    Problème : comment en rendre compte dans une représentation euclidienne ? Bah oui, on veut rester dans un espace euclidien, sinon ça va pas. On reprend notre triangle équilatéral , on trouve son centre de gravité (= isobarycentre), on le dilate jusqu'à obtenir . L'isobarycentre s'est déplacé et ce n'est pas l'isobarycentre de . Il va falloir en rendre compte dans notre espace euclidien. Si l'isobarycentre se déplace, on considère simplement que c'est le barycentre de 3 points pondérés de façon non triviale. Une fois ce nouveau barycentre correctement formalisé, on décide de définir les longueurs différemment : on pose , c'est-à-dire qu'on imagine toujours comme isobarycentre (et il le faut bien pour que notre triangle devienne équilatéral !). D'où l'intervention de la fonction radiale. Maintenant, tous les points à l'intérieur de ce triangle vont se voir attribuer un poids, qu'on calcule naturellement à partir d'un champ de vecteurs.

    Ce genre de choses peut se généraliser à la dimension , et on retrouve bien ce qu'on voulait

    Bon, voilà, je sais pas si j'ai été claire. Si je suis pas compréhensible, je peux te faire des schémas.

  13. #12
    invite6afd363c

    Re : Changement de repere

    PS: Les simplexes sont donc bien réguliers en géométrie hyperbolique. Dans un espace euclidien on fait comme si. Pour une idée de ce qui se passe en géométrie hyperbolique : http://fr.wikipedia.org/wiki/Disque_de_Poincar%C3%A9

  14. #13
    invite6afd363c

    Re : Changement de repere

    Je me rends compte qu'il y a des trucs qui vont pas dans ce que j'ai écrit :

    Maintenant, comme on est mal intentionné, on enlève tous des clous de sorte que tous les triangles se contractent et soient équilatéraux, mais l'espace est courbe localement(ce qu'on peut formaliser).
    À remplacer par :

    comme on est mal intentionné, on décide que l'élastique est dans son état non dilaté, on fait glisser le point pour le ramener à la position en contractant . est équilatéral, mais l'espace est courbe localement puisque pour y parvenir :
    - soit on laisse sous forme de segment mais est une courbe,
    - sont des segments et une courbe.
    (On peut formaliser tout ça).

    On reprend notre triangle équilatéral , on trouve son centre de gravité (= isobarycentre), on le dilate jusqu'à obtenir . L'isobarycentre s'est déplacé et ce n'est pas l'isobarycentre de .
    À remplacer par :

    On reprend notre triangle équilatéral courbé, on trouve son centre de gravité (= isobarycentre), on dilate jusqu'à obtenir . L'isobarycentre s'est déplacé et ce n'est pas l'isobarycentre de .


    Bon, je sais pas si c'est mieux, mais en tout cas il faut que j'aille bosser, donc prochain round plus tard !

  15. #14
    Zenol

    Re : Changement de repere

    Je saisit à peut près l'idée, que je trouve assez génial à vrais dire, puis qu’introduire une courbure revient à définir un nouveau produit scalaire (1er forme fondamentale) à ce que j'ai comprit.

    Mais je crois que ca ne correspond pas à ce qui est fait, pour plusieurs raison :

    1 - Le coefficient en dimension 2 est (Je n'ai pas la moindre idée du pourquoi, mais si l'on choisit sqrt(2)/2, le plan est horriblement déformé, et le bruit est distendu dans la direction y=x, de façon outrageusement visible.)

    2 - Les fonctions radiales sont de simples petites fonctions polynomiales de la forme : et la distance euclidienne entre le point et le sommet (On calcul 3 fois dans le cas dim=2). Elle sont les mêmes quelque soit la dimension, quelque soit le sommet. Il me semble donc que dans ces conditions elles ne peuvent pas rendre compte d'une courbure(enfin, à première vu, car j'ai l'impression qu'il y a plus de matière le long de la diagonale et moins le long de l'axe perpendiculaire à cette dernière, donc une courbure tanto positive, tanto négative, mais c'est du raisonnement ikéa et ce genre de chose ma déjà conduit à des conclusions fausses.).
    Quoi qu'il en soit, à ce que j'ai comprit, elles sont là pour définir les zones d'influences des gradient. À vrai dire, si l'on s’embête à paver l'espace en sommet "aussi espace" c'est justement pour pouvoir appliqué nos fonctions radiales sur chaque sommet de façon à ce quelle bruit soit anisotrope (si je ne me trompe pas de mot). En fait, on peut voir ces fonctions radiales comme des n-sphères à partir des quel, tout point à l'extérieur, ne subit plus l'effet du gradient de couleur.
    Pour "voir" les fonctions radiales, tu peux regarder mes notes à la page 30, il y a une petite image, et pour le coup de la façon dont interfèrent (ou plutôt, justement, n'interfèrent pas) les gradients de couleur dans un triangle équilatérale tracé sur le plan, il y a le tout premier lien, dans une des pages (Il suffit de rechercher une figure avec beaucoup de gris, et trois petits "plots")

  16. #15
    invite6afd363c

    Re : Changement de repere

    Crap!

    J'imprimerai les pdf demain au boulot et je lirai correctement.

    @+

Discussions similaires

  1. changement de repere
    Par invite766b3b71 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 16/06/2009, 10h24
  2. changement de repere
    Par invite6ed6fe4c dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 07/01/2009, 19h15
  3. changement de repère
    Par invite5411484d dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 18/11/2008, 17h59
  4. changement de repère
    Par invitedc31ba8c dans le forum Physique
    Réponses: 7
    Dernier message: 07/03/2007, 09h40
  5. Changement de repère en 3D
    Par invite58ca56b8 dans le forum Mathématiques du supérieur
    Réponses: 5
    Dernier message: 11/03/2006, 10h47