#1 Mon 08 January 2007 22:29
Transformations affines et corrections d'Helmert
Bonjour,
N'étant pas topographe et mes cours de géométrie s'étant arrêté en terminale d'économie, je me pose des questions sur le sens des mots et expressions suivants: transformations affines et corrections d'Helmert.
D'après l'échange que j'ai suivi, l'IGN produit la BD Parcellaire en utilisant des transformations affines, tandis que la DGI applique les corrections d’Helmert pour produire le PCI.
Je n'ai rien trouvé sur Internet pour m'aider.
A votre bon coeur.
Amitiés,
Bruno
Hors ligne
#2 Mon 08 January 2007 23:25
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: Transformations affines et corrections d'Helmert
Bonjour,
Transfo affines utilisée par l'IGN ? Hum un petit doute il s'agit plutôt de triangulation de Delaunay . Ceci est à vérifier.
Pour la DGI (et c'est ce qui la différencie des prestataire privé) elle réalise une transformation dite en bloc par modèle indépendant, voir l'échange sur ce forum "réception d'un plan photo au 1/2000" (en fin).
Cette transfo permet de calculer les paramètres d'une transformation d'helmert pour chaque feuille cadastrale d'une commune. Mais ceci en tenant compte de toutes les feuilles et de leur jonction (raccord entre feuille).
Deuxièmement toutes les deux, helmert et affine, sont des transformation, du plan sur lui même.
Une transformation affine ne conserve pas les propriété géométrique d'une figure (delaunay pareil), un carré peut devenir un rectangle, l'angle entre deux droite peut varier.
Une transfo affine classique est la déformation d'un plan lors du passage dans les antiques repro à l'amoniaque le plan est déformé perpendiculairement à l'axe du rouleau de la repro.
A l'inverse une adaptation d'helmert conserve les propriété géométrique d'une figure. Une notion qui est classiquement démontrée par le fait que la transformée du barycentre d'un nuage de point est le barycentre des points transformés.
Cette transfo est la composée d'une homothétie de centre O et de rapport k qui peut s'écrire (centre en 0.0)
X=k*x
Y=K*y
et d'une rotation d'angle téta (sens des angle: cercle topo)
X= cos(teta)*x + sin(teta)*y
Y =-sin(teta)*X + cos(teta)*y
et d'une translation de vecteur (p,q)
X= x+p
Y= Y +q
Si on pose a= k*cos(teta) et b= k*sin(teta) alors l'helmert peut s'écrire
X= ax + by +p
Y = -bx + ay + q
Toute la problématique en topographie est de trouver les paramètres a,b,p,q connaissant un nombre de point dans le système de départ et leurs coordonnées dans un système d'arrivée, local et lambert zone par exemple.
On démontre facilement qu'il suffit de deux points pour calculer a,b,p,q ceci c'est la théorie mathématique, mais dans la pratique en topographie le nombre de points connus dans les deux systèmes est supérieur à deux, et il n'existe pas H(a,b,p,q )tel que chaque point soit transformé en sa valeur connue dans le système final. Mais on peut trouver H(a,b,p,q) de manière à ce que chaque point transformé soit le plus proche possible de la valeur connue. Ceci s'appel la méthode des moindres carrés.
Soit v le résidu, la distance qui sépare la transformée du point de sa valeur connue (que l'on note Xm, Ym)
pour chaque point connu on ecrit:
ax + by + p - Xm = vx
-bx + ay + q - Ym = vy
ou Vx, Vy sont la projection sur les axes du résidu v
Ceci peut être ecrit sous forme matricielle:
A*X- K = V avec
A :
ligne 1: x1 y1 1 0
ligne 2: y1 -x1 0 1
ligne n: xi yi 1 0
ligne n+1: yi -xi 0 1
avec i = n/2
X matrice des inconnue (une colonne unique) : (a,b,p,q)
K matrice (une colonne unique): (x1m,y1m, ..... Xim,Yim)
V matrice (une colonne unique): (v1x,v1y .... vix,viy)
On cherche H(a,b,p,q) tel que le carré des résidu soit minimal (distance au carré minimale), donc que la dérivée de la fonction représentant les résidu soit nulle.
Le carré des résidus s'écrit : transposée de V multiplié par V, (tV*V) ou encore :
Transposée de (AX-K) que multiplie (AX-K) reste à dériver cela et résoudre ce qui permet de calculer a,b,p,q.
Bonne aspirine 2007 Bruno
A+
Christophe
Dernière modification par DIANA2D.dev (Mon 08 January 2007 23:26)
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#3 Tue 09 January 2007 10:21
Re: Transformations affines et corrections d'Helmert
Petit complément :
Une transformation affine ne conserve pas les propriété géométrique d'une figure (delaunay pareil), un carré peut devenir un rectangle, l'angle entre deux droite peut varier.
...mais elle conserve le parallélisme si je ne m'abuse ?
Hors ligne
#4 Tue 09 January 2007 11:09
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: Transformations affines et corrections d'Helmert
Bonjour
Une grosse erreur dans mon précédent post sur les "affines" voici la définition mathématique:
http://fr.wikipedia.org/wiki/Application_affine
Merci Robin. Effectivement le parralelisme est conservé donc l'angle entre deux droite ne devrait pas varier.
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#5 Tue 09 January 2007 11:48
Re: Transformations affines et corrections d'Helmert
Pas de soucis, c'est aussi un peu obscur pour moi.
Arrêtez moi si je me trompe, mais il me semble vaguement me rappeler qu'une transfo affine (comme on trouve dans Arcview 8+ par exemple) transforme un point X1 en un point X2 via des équations de ce type :
- Transformation simple de premier degré( = translation rotation homothétie)
X2 = aX1+b
Transformation de second degré, utilisé pour compenser des déformation de feuille globale
X2 = aX1²+bX1+c
Transformation de 3ème degré, pour des déformation plus locales :
X2 = aX1³+bX1²+cX³+d
Les autres sont peu utilisées.
C'est ça ?
Robin.
PS : j'ai trouvé d'autres trucs à lire pour les intéressés ici : http://www.cabri.net/abracadabri/GeoPla … ntact.html Suivre les liens ensuite pour d'autres pages.
EDIt : En fait ce n'est pas faux, les angles entres droites peuvent changer mais 2 droites parallèles le resteront : un rectangle en losange par exemple.
Dernière modification par Robin (Tue 09 January 2007 11:51)
Hors ligne
#6 Tue 09 January 2007 12:38
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: Transformations affines et corrections d'Helmert
Bonjour,
Une petite remarque, il est très difficile d'écrire des formules mathématiques dans un post, pour le HTML j'utilise Amaya, est-ce que les services techniques de GeoRezo auraient une solution pour permettre d'écrire ce genre de chose ??
A+
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#7 Tue 09 January 2007 16:38
- Plane Manuel
- Participant occasionnel
- Lieu: Lyon
- Date d'inscription: 22 Feb 2006
- Messages: 11
Re: Transformations affines et corrections d'Helmert
Bonjour,
Dans votre message, vous parlez de TRANSFORMATIONS affines et CORRECTIONS d’helmert.
Les mots TRANSFORMATIONS et CORRECTIONS qui sont utilisés semblent désigner la même chose, c'est-à-dire le passage d’un système à un autre (une Transformation ou une Correction, peu importe comment on l’appelle) en suivant une méthode mathématique particulière. Ici, les deux méthodes dont vous parlez sont couramment utilisées : Affine et Helmert.
En fonction du travail à réaliser et en fonction des outils à disposition, on peut utiliser l’une ou l’autre des méthodes tout en gardant à l’esprit les limites de chacune d’elles.
Aujourd’hui, la transformation d’Helmert est très utilisée car elle est relativement simple et implémentée dans la majorité des logiciels topo et SIG. Elle permet de faire coïncider au mieux des jeux de coordonnées planes à l’aide de 4 inconnues (2 translations, 1 rotation, 1 facteur d’échelle). Cette transformation permet de conserver les angles. Elle semble donc parfaitement adaptée pour la digitalisation de planches cadastrales.
La transformation Affine possède 6 inconnues, elle permet de couvrir des surfaces plus étendues et plus complexes que la transformation d’Helmert. Elle ne conserve pas les angles, les longueurs ne se déformant pas de la même manière suivant les directions. Elle est également sensible à la répartition des points de calage.
En fonction de vos données et de vos besoins en terme de précision, il faut être capable de déterminer quelle transformation est la plus adaptée. Plus vous travaillez vers de grandes échelles, plus la précision (et donc le choix) de la transformation est important.
Le plus important à retenir concerne surtout les critères qui vont permettre de préférer une méthode plutôt qu’une autre. Plusieurs facteurs interviennent dans le choix d’une méthode :
- Sa précision
- Sa simplicité d’utilisation
- Ses limites d’applications et d’utilisation (nombre de points communs)
Cordialement
Manuel Plane
Hors ligne
#8 Tue 09 January 2007 16:53
Re: Transformations affines et corrections d'Helmert
Bonjour,
est-ce que les services techniques de GeoRezo auraient une solution pour permettre d'écrire ce genre de chose ??
Ca a l'air possible en PunBB, je fais passer la demande en interne. On va voir si on peut faire du LaTeX
Robin.
Dernière modification par Robin (Tue 09 January 2007 17:11)
Hors ligne
#9 Tue 09 January 2007 19:20
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: Transformations affines et corrections d'Helmert
Latex:
Voilà une idée qu'elle est bonne ! (ce sans rire)
En plus on se sentira protégés (là,je pouvais pas m'en empécher)
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#10 Thu 11 January 2007 11:48
Re: Transformations affines et corrections d'Helmert
Hello Christophe,
Pour le rajout de LaTeX sur le forum, c'est mis dans les "idées" mais ce n'est pas le plus urgent dans nos liste de développement, de plus il faut trouver une solution pour les abonnés par mail qui ne vont rien voir.
Il semble qu'il y ait des serveurs publics qui pourraient permettre de créer des formules. Libre à l'intéressé de joindre l'image de la formule a son message
Robin.
Hors ligne
#11 Thu 11 January 2007 20:31
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: Transformations affines et corrections d'Helmert
Salut,
J'ai regarder un peu plus précisement et il me semble que la pièce jointe, ou un lien vers une page HTML est la plus facile et économique des solutions.
Il faut aussi tenir compte du fait que le besoin n'est pas chronique.
Et il est donc beaucoup plus normal de laisser, ceux qui en ont besoin, se donner les moyens d'être lus.
Merci à l'équipe du GeoRezo d'être a l'écoute de ses utilisateurs.
A+
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#13 Tue 16 January 2007 09:35
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: Transformations affines et corrections d'Helmert
Bonjour,
Robin t'as utiliser quoi exactement pour générer ce message ?
(je galère avec Amaya et Mozilla qui plante lorsque je veux afficher un xml quand il est sur le serveur)
A+
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#14 Tue 16 January 2007 10:09
Re: Transformations affines et corrections d'Helmert
Hello,
Explication : notre Fred préféré, dans un élan de générosité, a implanté le LaTeX sur GeoRezo, mais chut, ce n'est pas encore officiel
Il suffit d'utiliser les balises dont on parle ici :
http://www.math-linux.com/forum/viewtopic.php?id=1
Robin.
Hors ligne
#15 Tue 16 January 2007 10:13
Re: Transformations affines et corrections d'Helmert
Pour faire vos tests, j'ai placé un sujet dans le bar : http://georezo.net/forum/viewtopic.php?id=46059
Hors ligne
#16 Tue 16 January 2007 10:43
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: Transformations affines et corrections d'Helmert
notre Fred préféré, dans un élan de générosité, a implanté le LaTeX sur GeoRezo
Rapide comme la Foudre ! Béni par nos soins (en remerciements).
A+
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#17 Fri 19 January 2007 23:34
Re: Transformations affines et corrections d'Helmert
Bonsoir,
J'ai oublié de vous remercier, Manuel Plane, pour votre réponse très claire à mon sujet de départ.
Désolé Christophe, mais ta réponse était trop mathématique pour moi.
Merci,
Bruno
Hors ligne
#18 Fri 16 November 2007 20:18
- gigilogi
- Participant occasionnel
- Date d'inscription: 16 Nov 2007
- Messages: 14
Re: Transformations affines et corrections d'Helmert
salut Christophe V.
j' ai lu ton sujet sur la transformation d'helmert et la méthode des moindres carrés qui pour un néophyte comme moi est
une source de compréhension inestimable (je n' ai trouvé nulle part une explication aussi synthétique)
Mais n' étant pas un matheux dans l'âme je me pose plusieurs question:
ax + by + p - Xm = vx
-bx + ay + q - Ym = vy
Dans les 2 équations ci dessus est ce que x,y correspond au point qu'on veut transformer et est ce que Xm,Ym
correspond au point dans le système d'arrivée ?
Transposée de (AX-K) que multiplie (AX-K) reste à dériver cela et résoudre ce qui permet de calculer a,b,p,q.
quand on fait dérivée(t(AX-K)*(AX-K))=0 comment résoud on cette équation pour trouver a,b,p,q?
si tu as le temps de m'expliquer?
et peux tu me dire si j' ai bien compris ,une fois qu'on a a,b,p,q
il suffit d' appliquer à chaque point les formules:
X= ax + by +p
Y = -bx + ay + q
X,Y étant la transformé du point x,y du système d'origine dans le système d'arrivée.
merci d'avance.
Hors ligne
#19 Fri 16 November 2007 22:07
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: Transformations affines et corrections d'Helmert
Bonjour,
ax + by + p - Xm = vx
-bx + ay + q - Ym = vy
Dans les 2 équations ci dessus est ce que x,y correspond au point qu'on veut transformer et est ce que Xm,Ym
correspond au point dans le système d'arrivée ?
Oui, Xm et Ym car en topographie il s'agit de point mesurés.
Transposée de (AX-K) que multiplie (AX-K) reste à dériver cela et résoudre ce qui permet de calculer a,b,p,q.
quand on fait dérivée(t(AX-K)*(AX-K))=0 comment résoud on cette équation pour trouver a,b,p,q?
La somme des carrés des résidus
est minimale si la dérivée est nulle.
La dérivée d'un produit est une somme on a donc
et
donc (je simplifie)
et peux tu me dire si j' ai bien compris ,une fois qu'on a a,b,p,q
il suffit d' appliquer à chaque point les formules:
X= ax + by +p
Y = -bx + ay + q
X,Y étant la transformé du point x,y du système d'origine dans le système d'arrivée.
Oui
A+
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#20 Sat 17 November 2007 09:35
- gigilogi
- Participant occasionnel
- Date d'inscription: 16 Nov 2007
- Messages: 14
Re: Transformations affines et corrections d'Helmert
merci christophe
grace à tes explications j'ai compris l'essentiel ce qui au départ paraissait difficile.
c' est vraiment sympa de ta part .
je travaille le sujet (il va me falloir un peu de temps) et je te demanderais peut être d'autres explications si
je coince.
merci encore.
Hors ligne
#21 Sat 17 November 2007 21:26
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: Transformations affines et corrections d'Helmert
Bonjour
Content que cela puisse servir (mais c'est le but d'un "rezo"), si tu as des questios n'hésites pas à les poser sur le forum.
Une petite indication sur la résolution des équations précédentes (car les matrices c'est bien mais pour résoudre faut mettre les mains dans le cambouis) :
La transformée du barycentre des points transformés est la transformée du barycentre des points à transformer. ceci conduit à quelques simplifications d'écriture.
A+
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#22 Sat 17 November 2007 22:07
- gigilogi
- Participant occasionnel
- Date d'inscription: 16 Nov 2007
- Messages: 14
Re: Transformations affines et corrections d'Helmert
SALUT Christophe
je vais t'exposer le problème que je tentes de résoudre (pour l'instant je t'avoue que j'apprends les premières notions sur la transformation
d' helmert et que je ne suis donc pas au bout de mes peines):
(je fais ça en VB6 visual basic)
j' ouvre un fichier DXF dont j' extrais les points et je positionne ces points sur un plan scanné (une pictureBOX).
ce que je veux obtenir -> en cliquant sur le plan scanné je prends différents points d' une parcelle et ce que je voudrais obtenir par la transformation d' Helmert c' est de repositionner correctement les points du fichier DXF par rapport aux points que j'ai cliquer successivement
sur le plan scanné.
je ne sais pas si je me fais bien comprendre ??
J' ai vite compris que pour résoudre la matrice que tu m'as gracieusement donné il fallait vraiment mettre les mains dans le cambouis.
à tel enseigne que pour l'instant j'ai toujours les mains propres.
Si tu peux m'éclairer de tes lumières cela me permettra peut être d'avancer un peu.
Hors ligne
#23 Sun 18 November 2007 00:18
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: Transformations affines et corrections d'Helmert
Bonjour,
(je fais ça en VB6 visual basic)
Déjà on parle le même langage de programmation.
je ne sais pas si je me fais bien comprendre ??
Si, je fais ça chaque fois que je veux appliquer un lever terrain sur le plan cadastral.
Ci-dessous un extrait de code VB6 qui permet de calculer une helmert .
repd contient les points dans les coordonnées du système à adapter
repa contient les coordonnées mesurées.
La sequence de fonction pour calcul une fois ces tableaux initialisés:
"Initialise les tableaux de points à partir de DXF"
matinit
transmat
multmat
triangmat
defparam
calculresidus
calculmoyquadra
"affichage des résultats"
Code:
Public repd() As Double Public repa() As Double Public maxpoint, nbpoint As Double Public M1() As Double Public M2() As Double Public M3() As Double Public M4() As Double Public M5() As Double Public residus() As Double Public param(3) As Double Public par As Double Public moyennequadra As Double Public Sub matinit() 'vérifie les données et initialise maxpoint = UBound(repd) + 1 nbpoint = UBound(repa) + 1 If maxpoint <> nbpoint Then i% = MsgBox("Calcul impossible, nombre de points différents dans chaque repère", vbOKOnly, "Désolé") Exit Sub Else ReDim M1(2 * maxpoint - 1, 3) 'A ReDim M2(2 * maxpoint - 1) 'K For i% = 0 To maxpoint - 1 M1(2 * i%, 0) = repd(i%, 0) M1(2 * i%, 1) = -repd(i%, 1) M1(2 * i%, 2) = 1 M1(2 * i%, 3) = 0 M2(2 * i%) = repa(i%, 0) M1(2 * i% + 1, 1) = repd(i%, 0) M1(2 * i% + 1, 0) = repd(i%, 1) M1(2 * i% + 1, 2) = 0 M1(2 * i% + 1, 3) = 1 M2(2 * i% + 1) = repa(i%, 1) Next i% End If End Sub Public Sub transmat() ReDim M3(3, 2 * maxpoint - 1) 'calcul tA For j% = 0 To 3 For i% = 0 To 2 * maxpoint - 1 M3(j%, i%) = M1(i%, j%) Next i% Next j% End Sub Public Sub multmat() ReDim M4(3, 3) ReDim M5(3) 'calcul tAA For i% = 0 To 3 For j% = 0 To 3 M4(i%, j%) = 0 For k% = 0 To 2 * maxpoint - 1 M4(i%, j%) = M4(i%, j%) + M3(i%, k%) * M1(k%, j%) Next k% Next j% Next i% 'calcul de tAK For i% = 0 To 3 M5(i%) = 0 For j% = 0 To 2 * maxpoint - 1 M5(i%) = M5(i%) + M3(i%, j%) * M2(j%) Next j% Next i% End Sub Public Sub triangmat() 'triangularisation de tAAX=tAK soit M4X=M5 For j% = 0 To 2 i% = j% + 1 For k% = i% To 3 par = M4(k%, j%) / M4(i% - 1, j%) For l% = j% To 3 M4(k%, l%) = M4(k%, l%) - par * M4(i% - 1, l%) Next l% M5(k%) = M5(k%) - par * M5(i% - 1) Next k% Next j% End Sub Public Sub defparam() param(3) = M5(3) / M4(3, 3) For i% = 2 To 0 Step -1 par = 0 For j% = i% + 1 To 3 par = par + M4(i%, j%) * param(j%) Next j% param(i%) = (M5(i%) - par) / M4(i%, i%) Next i% End Sub Public Sub calculresidus() ReDim residus(2 * maxpoint - 1) For i% = 0 To 2 * maxpoint - 1 residus(i%) = 0 For j% = 0 To 3 residus(i%) = residus(i%) + M1(i%, j%) * param(j%) Next j% Next i% For i% = 0 To maxpoint - 1 residus(i% * 2) = residus(2 * i%) - M2(i% * 2) residus(2 * i% + 1) = residus(2 * i% + 1) - M2(2 * i% + 1) Next i% End Sub Public Sub calculmoyquadra() Dim w0, w1 As Double w0 = 0 w1 = 0 For i% = 0 To maxpoint - 1 w0 = w0 + residus(2 * i%) * residus(2 * i%) w1 = w1 + residus(2 * i% + 1) * residus(2 * i% + 1) Next i% w0 = w0 / maxpoint w1 = w1 / maxpoint moyennequadra = Sqr(wo + w1) End Sub
Ceci dit cela ne te dispense pas, de comprendre comment ça marche, sourtout si tu veux améliorer car c'est livré "tel quel" et ça fait pas mal de temps que je me suis pas servi de ce code, je ne te le garantis donc pas.
A+
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#24 Sun 18 November 2007 10:38
- gigilogi
- Participant occasionnel
- Date d'inscription: 16 Nov 2007
- Messages: 14
Re: Transformations affines et corrections d'Helmert
merci christophe
je vais essayer de comprendre ton code.
je te tiens au courant
Hors ligne
#25 Sun 18 November 2007 11:04
- gigilogi
- Participant occasionnel
- Date d'inscription: 16 Nov 2007
- Messages: 14
Re: Transformations affines et corrections d'Helmert
Code:
Public Sub triangmat() 'triangularisation de tAAX=tAK soit M4X=M5 For j% = 0 To 2 i% = j% + 1 For k% = i% To 3 par = M4(k%, j%) / M4(i% - 1, j%) For l% = j% To 3 M4(k%, l%) = M4(k%, l%) - par * M4(i% - 1, l%) Next l% M5(k%) = M5(k%) - par * M5(i% - 1) Next k% Next j% End Sub
AVANT D' arriver là ça va mais ici JE NE COMPRENDS PAS BIEN LE PRINCIPE.
Est Ce Que C'est bien param(i%) la matrice X des inconnues recherchés (a,b,p,q) ?
si tu peux m'éclairer.
merci
Hors ligne
#26 Sun 18 November 2007 12:15
- gigilogi
- Participant occasionnel
- Date d'inscription: 16 Nov 2007
- Messages: 14
Re: Transformations affines et corrections d'Helmert
DANS le global , dis moi si je me trompes christophe .
repd contient les points dans les coordonnées du système à adapter(j'ouvre le fichier DXF et je charge les points dans repd-> on met en forme la matrice M1)
repa contient les coordonnées mesurées.(je clique les points sur le plan scanné (picturebox) que je mets dans repa-> on met en forme la matrice M2)
Aprés les différents calculs sur les matrices :
dans param(3) on obtient les 4 valeurs (a,b,p,q) de la transformation de helmert.
est ce que après le calcul : residus(i%) = residus(i%) + M1(i%, j%) * param(j%)
on retrouve les points transformés dans residus(i%) ?
est ce qu'il suffit alors de positionner les points transformés de coordonnées residus(i%) sur le plan scanné
en affichant les textes des côtes des points du DXF Contenus dans M1(i%, j%) ?
Hors ligne
#27 Sun 18 November 2007 20:36
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: Transformations affines et corrections d'Helmert
Bonjour,
'triangularisation de tAAX=tAK soit M4X=M5
Il s'agit de la résolution par la méthode du pivot de gauss, c'est pas terrible en terme de perf mais c'est facile à implanter.
Param() contient effectivement les 4 paramètres de la transfo d'helmert.
"Dans le global" c'est correct sauf à la fin, résidu contient la différence entre la valeur mesurée et la valeur de la transformée, c'est ce qui caractérise la transformation, on a calculer a,b,p,q pour que le carré de ceux-ci soit minimal.
A+
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#28 Sun 18 November 2007 22:29
- gigilogi
- Participant occasionnel
- Date d'inscription: 16 Nov 2007
- Messages: 14
Re: Transformations affines et corrections d'Helmert
BONJOUR CHRISTOPHE
MERCI POUR TON EXPLICATION.
MAIS COMMENT ON REPOSITIONNE LES POINTS DU DXF PAR RAPPORT AUX POINTS Cliqués sur le plan du scan ?
PAR w0 et w1 ?
en attendant tes conseils avisés.
à +
Hors ligne
#29 Mon 19 November 2007 09:27
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3197
- Site web
Re: Transformations affines et corrections d'Helmert
Bonjour,
Tu l'as écrit un peu plus haut
et peux tu me dire si j' ai bien compris ,une fois qu'on a a,b,p,q
il suffit d' appliquer à chaque point les formules:
X= ax + by +p
Y = -bx + ay + q
X,Y étant la transformé du point x,y du système d'origine dans le système d'arrivée.
A+
Christophe
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#30 Mon 19 November 2007 10:41
- gigilogi
- Participant occasionnel
- Date d'inscription: 16 Nov 2007
- Messages: 14
Re: Transformations affines et corrections d'Helmert
OK si j' ai bien compris il ne me reste plus qu'a faire cela :
sachant que pointx(i) et pointy(i) est l'image de repd.
IL SUFFIT d' afficher les nouveaux points pointtransformex(i%) et pointtransformey(i%) avec les textes des coordonnées de
pointx(i) et pointy(i)
for i%= 0 to maxpoint -1 then
pointtransformex(i%)=param(0).pointx(i%)+param(1).pointy(i%)+param(2)
pointtransformey(i%)=-param(1).pointx(i%)+param(0).pointy(i%)+param(3)
end if
Hors ligne