|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2012 Messages : 3 ![]() |
Bonjour,
je cherche actuellement à développer un code de calcul me permettant de retrouver la courbure, de l'approcher tout du moins, d'une courbe définie par des points. En gros, j'ai un fichier contenant des coordonnées mais je n'ai pas d'équation. J'ai bien vu que cela était possible dans d'autres langages (typiquement Matlab mais je n'y entend pas grand chose) et que certaines méthodes existaient mais je suis encore un peu "jeune" en programmation. J'ai une expression géométrique que je pourrais programmer facilement mais je voudrais faire quelque chose de plus propre. J'ai un peu fouillé le numerical recipes cela y est peut-être et je ne suis pas tombé dessus xD Néanmoins, si quelqu'un pouvait me donner des indications ou une méthode vers laquelle me tourner cela m'aiderait beaucoup. En vous remerciant par avance! PS: j'ai des coordonnées 3D |
|
|
00
|
|
|
#2 |
![]() ![]() Jean-Marc Blanc Inscription : avril 2007 Messages : 2 658 ![]() |
Salut!
Ta question n'a rien à voir avec le langage Fortran, En conséquence, je transfère cette discussion dans le forum algo/maths. Jean-Marc Blanc
__________________
Calcul numérique de processus industriels Formation, conseil, développement Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux) |
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 8 741 ![]() |
je suis plus familier avec le 2D, mais je crois que ça existe aussi en 3D : les splines..
par exemple Splines 3D (Paul Bourke) Tu as aussi une pplication intéressante avec de l'ADN : Optimisation du calcul de la courbure d’ADN (pdf) 'fin bref, il y a pas mal de possibilités.. Il faut rechercher un peu..
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
|
|
00
|
|
|
#4 |
![]() ![]() Xavier PhilippeauArchitecte système Inscription : décembre 2006 Messages : 9 423 ![]() |
Connais-tu également le parcours à suivre de ces coordonnées ? Si oui, je plussoie la méthode de souviron34.
__________________
ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple. |
|
00
|
|
|
#5 |
|
Membre éclairé
![]() Doctorant en informatique Inscription : juin 2009 Messages : 244 ![]() |
N'est-il pas simplement possible de faire une régression de moindres carrés. On chercherait à trouver les paramètre x,y et r tels que:
E = sum_i (sqrt((xi-x)^2 + (yi-y)^2) - r)^2 soit minimum. en posant ri = sqrt((xi-x)^2 + (yi-y)^2) On a le gradient dE/dx = -2 sum_i (xi-x) (ri-r)/ri dE/dy = -2 sum_i (yi-y) (ri-r)/ri dE/dr = -2 sum_i ri-r |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : février 2012 Messages : 3 ![]() |
Bonjour,
D'abord, désolé pour le post mal-placé ^^' J'étais bien tombé sur le rapport l'optimisation du calcul de la courbure ADN mais je concède que je n'ai pas eu le courage d'aller bien bien loin. J'ai un peu plus regardé et je vais continuer. Dans un premier temps je pensais le faire à position fixée donc sans connaître le chemin à suivre de mes coordonnées sans prendre en compte ce qui s'est passé avant et sans savoir ce qu'il se passera après. Néanmoins, quand j'ai jeté un coup d'oeil à la méthode de Souviron34, effectivement ça me parait faisable ^^' L'unique problème est que je suis en fortran 90. Je vais fouiller un peu le site, il me semble que je pourrais y trouver mon bonheur. J'ai aussi pas mal fouillé avant de revenir lire vos réponses et j'ai vu que effectivement j'avais pas mal de possibilités comme celle que propose Alexis. M. J'avais aussi repérer les courbes de Bézier mais je ne sais pas si c'est vraiment adapté à mon problème :s Je vais donc continuer à fouiller avec ce que vous m'avez donné. Je vois que je peux m'en sortir ^^ Merci! |
|
|
00
|
|
|
#7 |
|
Membre éclairé
![]() Doctorant en informatique Inscription : juin 2009 Messages : 244 ![]() |
Si tu es intéressé par une mesure du "degré de courbure" plus que par le rayon de courbure lui même tu peux aussi calculer la plus petite valeur propre de la matrice de covariance des points dans un voisinage. Quand cette valeur propre est proche de zero, la courbe et plate sinon, le vecteur propre associé te donne une estimation de la normale à la courbe.
|
|
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() Inscription : janvier 2007 Messages : 8 741 ![]() |
autre note 1 : les courbes de Béziers ne passent pas par les points (si on cherche à déterminer une interpolation. C'est autre chose quand on trace une courbe connue et dans ce cas ça passe par les points, mais ce sont des points caractéristiques)..
autre note 2 : Paul Burke doit avoir ça quelque part en Fortran.. Et je suis certain sinon que dans les lines donnés en global ici sur ce forum tu trouveras ton bonheur quelque part dans GraphicsGems ou dans les liens pointés par Scientific Computing and Numerical Analysis FAQ
__________________
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle". Consultant indépendant. Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie. C, Fortran, XWindow/Motif, Java Je ne réponds pas aux MP techniques |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : février 2012 Messages : 3 ![]() |
Oky donc je ne retiens pas les courbes de Bézier. C'est vraiment le rayon de courbure local qui m'intéresse et ce qui me gêne le plus c'est que j'ai un plan courbe. L'idée j'ai compris mais la mise en application est flou x) Quoiqu'en relisant cette discussion je crois que je commence à mieux comprendre comment faire
Je vais regarder tes liens souviron34. ![]() Merci à vous ^^ Edit : j'ai bien réfléchi à mon problème et je pense avoir trouvé une solution. Je voudrais vous remercier pour vos réponses qui m'ont permis d'avancer dans ma réflexion et m'ont amené à découvrir des sites très intéressants pour la programmation en général!
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com