Bonjour,
J'ai un nuage de points en 3D qui represente un tronc de cône.
Quelqu'un aurait-il l'equation d'un tronc de cône pour calculer ses parametres qui sont un centre d'un cercle, un rayon a sa base, une hauteur et un vecteur directeur pour son axe ?
Une equation qui calculerait la distance d'un point inconnu (x, y, z) à ce tronc de cône.
je determinerai ensuite les parametres de ce tronc de cône par les moindres carres ou par la methode des intermediaires.
Merci par avance.
Bonjour a tous,
personne n'a donc de solution pour trouver la distance d'un point M quelconque a un tronc de cône defini par deux centres et un angle, angle au sommet d'un cône
merci par avance de votre aide
Je tente:
En supposant un cône vertical de centre O, de rayon R et de hauteur h et en considérant que z est l'axe vertical, alors je pense qu'un cône peut être considéré comme un empilement de cercles concentriques dont le rayon dépend uniquement de z.
Comme on a pour un cercle de rayon r(z): x²+y²=r²(z)
Et que r(z)=R(h-z)/h (en s'aidant de Thalès)
Il me semble que l'ensemble des points du cône sont définis par:
x²+y²=R²(h-z)²/h²
Avec comme condition z[0;R]
1. Il faudrait évidemment que tu définisse ce que tu appelles la distance d'un point à un tronc de cône (de révolution).
2. Une fois cette distance définie, le problème géométrique se réduira probablement à un problème plan, dans le plan défini par le point et l'axe du tronc de cône.
Bonjour à tous et merci pour vos réponses,
je pense qu'il est préférable d'écrire l'équation d'un tronc de cône non pas avec un rayon fonction de l'altitude z mais d'un angle fonction d'un angle alpha, angle qui serait l'angle au sommet d'un cône complet,
je m'explique, en définissant un tronc de cône par un centre de cercle K à sa base, une hauteur h, un vecteur unitaire (a, b,c) et un angle alpha,
on peut calculer la distance d'un point M (x,y,z) à l'axe du cône défini par le centre K du cercle et le vecteur unitaire puis lui soustraire une distance fonction de h et de alpha pour trouver la vrai distance d'un point M à la surface du tronc de cône
mais c'est la que je ne vois comment exprimer la hauteur h,
j'ai déjà l'équation de la distance d'un point M à un cône défini par un sommet K, un angle alpha et un vecteur (L,M,N)
du type
(X − XK)²*(M² + N²) + (Y − YK)²*(L² + N²) + (Z − ZK)²*(L² +M²)
−2*(X − XK)*(Y − YK)*LM − 2*(X − XK)*(Z − ZK)*LN − 2*(Z − ZK)*(Y − YK)*MN
− ((X−XK)² + (Y −YK)² + (Z−ZK)²)* (sin (alpha/2))²(L² +M² + N²) = 0
mais je n'arrive à intégrer le parametre H dans cette équation pour n'avoir pas un cône mais un tronc de cône tout simplement
merci de votre aide
Bonjour.
Un tronc de cône peut être défini par :
- le sommet S du cône,
- un vecteur directeur définissant un axe orienté S
d'origine ce sommet,
- un demi-angle au sommet ,
- deux abscisses positives sur S définissant les deux plans perpendiculaires à S
qui ferment le tronc de cône,
soit 9 paramètres en tout, à estimer en minimisant une fonction des distances des points-données à (la surface de) ce tronc de cône.
Le problème est que tu n'as pas vraiment défini, pour un point donné, ce qu'est cette distance ; si l'on conçoit bien ce que cela peut être pour les points de la zone colorée, comme M, c'est beaucoup moins évident pour des points comme M1, M2, M3, M4, ...
Et c'est d'autant moins facile que, ne l'oublions pas, le tronc de cône lui-même n'est pas encore défini !
Pour commencer, identifions les différents paramètres et données:
: vecteur directeur de l'axe du cône
: demi-angle du cône ou angle entre l'axe et une génératrice
C : Point Sommet du cône
M : point de la surface du cône
M': point projection de M sur l'axe du cône
P : point de l'espace dont on souhaite calculer la distance au cône.
: vecteur perpendiculaire au plan
Nous avons :
De plus nous avons :
Remplaçons les termes comprenant . Nous obtenons l'équation :
C'est l'équation de notre cône.
Distance entre le point P et le cône.
Le point le plus proche de
doit être sur une génératrice de tel façon que
et
soient dans le même plan. Ce plan ayant pour vecteur perpendiculaire le vecteur
, donc
doit vérifier la condition :
De plus le point
doit être le plus proche de
ce qui peut être vérifié avec la condition
Donc nous obtenons les équations suivantes pour chercher le point P afin de déterminer la distance PM:
La mise en équation nous donneras deux solutions qui sont deux points sur deux génératrices de part et d'autre de l'axe du cône. sauf le cas où ces deux points se confondent en .
Je vais essayer la mise en équation avec .
Je m'aperçois que mon message Posté le 26-11-13 à 18:38 ne comprend pas la figure que je croyais avoir jointe :
Merci pour votre aide,
pour Pierre_D, tous mes points sont sur le tronc de cône, je n'ai pas de points du style M1, M2, M3, M4 et M5,
ensuite pour minimiser une fonction par rapport à la distance, je fais une compensation par les intermédiaires, pour cela pas de souci,
mon souci vient plutôt du fait d'intégrer dans mon équation précédente une hauteur pour mon tronc de cône pour délimiter celui-ci car je n'ai pas de poibnts au delà ni en dessous comme pour un vrai cône.
l'approche de Razes me semble pas mal car je suis parti du même principe mais avec 7 paramètres, un sommet K, un angle alpha au sommet et un vecteur unitaire,
mais c'est pour l'équation de mon tronc de cône que là, je ne vois pas,
merci encore
si par exemple on définit un tronc de cône par un centre K à sa base, un rayon R, une hauteur h et un vecteur unitaire (a,b,c) et un point inconnu M (x, y, z) de mon tronc de cône
et si je reprend l'équation de mon cône, si je remplace le dernier terme par ceci (thalès)
- ((Zm - Zk)*R)/h * (a² + b² +c²) alors j'aurai délimiter mon tronc de cône, non ?
qu'en pensez vous ?
Désolé j'avais raisonné avec le sommet S du cône, le calcul pourrait être refait avec le cercle de la base.
Nous avons:
donc: la norme de
est égale à 1.
Nous avons aussi : M' étant la projection de M sur l'axe du cône (ce point est utilisé temporairement afin d'utiliser le diamètre MM' du cercle passant par M). Ces deux vecteurs sont perpendiculaires.
Pythagore
Utilisons l'angle entre l'axe et la génératrice :
Ceci entraine que :
Donc l'équation de notre cône est la suivante:
,
Cette équation s'écrit:
On peut refaire le calcul avec le point K.
Rebonjour Razes,
l'équation de ton cône que tu trouve à la fin ressemble à celle que j'ai posté précédemment.
maintenant si on raisonne non pas avec le sommet du cône mais le centre du cercle à la base avec une hauteur, ceci revient à modifier le second terme de ton équation en ajoutant comme paramètre une hauteur et non plus un angle, dans ce cas, ma proposition faite en réponse 13 est satisfaisante ou non ?
Bonjour, je me suis trompé en fait,
l'équation du tronc de cône est beaucoup plus compliqué que ce qu'il en est.
En effet, si on reprend l'équation de Razes, la distance du sommet S au point M ne correspond pas tout a fait à la distance du centre du cercle à la base au point M.
Il faut calculer la distance dans le cas du tronc de cône à la génératrice donc si K est le centre de mon cercle à la base et K' son projeté sur cette génératrice, il faut calculer la distance K'M par Al-kashi, ce qui nous donne
K'M²=K'K²+MK²-2.K'K.MK.cos (alpha) où K'K = rayon du cercle,
alpha représente l'angle entre la droite KK' et KM
et on a aussi tan (alpha) = (ZM-ZK)((ZM-ZK)/h)*R)
où h est la hauteur du tronc de cône et R le rayon à la base.
il faudrait arriver à éliminer le terme avec l'angle et ainsi à partir de l'équation de Razes, remplacer les termes correspondants non ?
On peut passer du sommet à la base par simple translation
de plus
Je posterais la config que tu souhaite.
j'ai reessaye d'ecrire l'equation avec le centre du cercle a la base mais je n'aboutit pas, j'ai toujours le terme avec l'angle qui traine
j'attends de voir ta config et merci encore pour ton aide sur ce post
Vous avez le choix selon ce que tu souhaite faire paraitre dans ton équation. angle ou (hauteur et Rayon)
Rebonjour,
voic mon raisonnement, il me manque je pense un vecteur normal à u mais la je ne sais plus l'écrire,
si vous pouvez m'aider
je viens de m'apercevoir qu'il y a une erreur dans mon équation,
en reprenant, j'obtiens ceci
MM' = ((h-(z-zc)).R)/h
et on a aussi MM²=CM²-CM'² avec vecteur CM' = vecteur CM . vecteur u
donc on aboutit à ceci
((h-(z-zc)).R)/h = (x-xc)²+(y-yc)²+(z-zc)²-(a.(x-xc)+b.(y-yc)+c.(z-zc))²
equation de ce tronc de cône à 8 parametres,
ceci vous semble t-il correct ?
Le raisonnement est correcte, sauf que là tu suppose que l'axe du cône est l'axe des z, ce que je n'avais pas fait dans mon raisonnement.
En ce qui concerne le dernier terme à droite et si tu considère que ton axe de cône est quelconque, ce terme n'est pas valable. Dans ce cas il faut appliquer le théorème de Thalès. avec P le point sur le cercle de centre C et de rayon R.
Ca remonte à combien de temps la géomètre? Tu fais la fac ou une école? Mais je pense que tu pourras le terminer cet exo.
Après avoir terminé tu pourrais vérifier ton équation avec l'équation que j'avais calculé il suffisait de faire un petit changement de variable et le tour est joué
qu'on remplace dans l'équation.
ca remonte a loin les vecteuts et tout ça
pour finir, le dernier terme de mon equation en tenant compte de tes remarques devient par thales avec CP=rayon, SC=hauteur,
(r/h. (a. (x-xs)+b. (y-ys)+c (z-zs)))^2 dans lequel je remplace les coordonnées de s par le centre c
ceci te semble t-il correct ?
et de plus, si on considere au depart que mon tronc de cone est droit, mon equation peut encore se reduire puisque pour le vecteur unitaire, on peut mettre la composante z a 1
Au final et en reprenant vos remarques pour un tronc de cône 3D,
si on prend comme parametre du tronc de cône, C le centre du cercle à la base, R son rayon, h la hauteur du tronc de cône, vecteur u comme vecteur directeur de l'axe de mon tronc de cône et M un point quelconque sur ce tronc de cône, j'obtiens ceci d'après les images jointes (figures et formules) ce résultat,
ce raisonnement vous semble -t-il cohérent ?
et puis si tu reprend ton croquis,
j'ai fais A'B'/AB = CA'/CA donc avec tes "valeurs", 4.5/6=9/12=0.75
c'est quoi le problème ?
Reprenons avec les mêmes notations (nous raisonnons toujours pour le cas de cône de révolution)):
avec
Donc le théorème de Pythagore nous permet d'avoir
Nous avons aussi : Ce n'est pas un produit vectoriel mais un produit scalaire.
Nous avons aussi que les deux vecteurs et
sont colinéaires, donc on peut écrire
D'où
Le théorème de Thalès comme tu l'a bien commencé peut s'écrire (avec S le sommet du cône, P un point du cercle de la base se trouvant sur la même génératrice que M): qui s'écrit :
Nous avons :
D'où
Posons ;
Remplaçons les termes dans l'équation (1) à partir de ceux des équations (2) et (3) Nous obtenons:
Si cela simplifiera l'équation.
Ceci est une globale. est quelconque (pas obligé // à l'axe des z)
Je vous laisse développer et simplifier. J'espère ne pas m'être trompé ou oublié un terme, en principe c'est la bonne méthode.
Pour la question de la distance, je l'ai déjà traité, il faut juste revoir les notations.
Puis-je me permettre quelques questions sur le contexte et la finalité de l'exercice ?
- Peux-tu donner des précisions sur le contexte ? Cas d'étude donné en cours ? Recherche personnelle ? Sujet de Stage ? Objectif professionnel ? ...
- A-t-on bien N points répartis aléatoirement sur la SURFACE d'un tronc de cône ?
- D'où viennent ces points ? Combien sont-ils ? Sont-ils EXACTEMENT sur la surface, ou bien légèrement dispersés à une distance variable faible mais non nulle (comme le suggère ta démarche) ?
- La répartition est-elle homogène ?
- En quoi la hauteur 'h' est-elle si importante ?
Commentaires et suggestions :
A confirmer selon tes réponses aux questions... mais personnellement, je laisserais tomber la recherche de 'h' dans un premier temps.
Je chercherais "simplement" le cône (et donc en fait essentiellement son sommet S).
Ensuite, une fois le cône trouvé, j'aurais son axe, et en projetant les points Mi, j'aurais l'intervalle dans lequel ils son contenus (le Z'min et le Z'max, si Z' est l'axe du cône).
Pour la recherche du cône, tu peux éventuellement écrire son équation en partant de ... (x'-a)² + (y'-b)² = t.z'² et en changeant de base pour avoir le cas général.
Ensuite tu fais tout passer du même coté et tu cherches un zéro.
Si l'alignement n'est pas parfait (voir les questions plus haut), tu peux écrire ce "zéro théorique" comme un epsilon que tu veux réduire en module. De là les moindres carrés...
epsilon = t.z'² - (x'-a)² - (y'-b)²
Sauf erreur, epsilon serait en gros le carré de la distance entre le point et son projeté sur le cône théorique en prenant ses coordonnées x et y. Tu as ainsi un bon critère à minimiser sur la globalité des points...
A creuser un peu...
Sinon une variante...
Si la recherche d'optimum est un peu complexe (régression non linéaire ici je le crains...)...
Pour un point S(x;y;z) considéré, candidat à être un bon sommet :
Calculer chaque vecteur unitaire : SMi/norme(SMi)
Tu as ainsi facilement la projection de tes points Mi sur une sphère unitaire.
Si les points sont sur un cône, dont S est le sommet, alors ces projetés seront sur un cercle.
Reste à faire une régression circulaire pour trouver le centre C et le rayon R de ce cercle et tu as la réponse.
Pour la régression circulaire, il y a une variante géométrique "explicite" :
Prendre chaque triplet Mi, Mj, Mk.
Eliminer ceux dont le déterminant est trop faible (donc trop alignés).
Calculer l'intersection des médiatrices qui donne un centre Cn.
Faire la moyenne des Cn pour trouver C (virer les éventuels Cn aberrants, s'il en reste...).
Calculer le rayon R comme moyenne des distances CMi.
La méthode est directe : pas de régression, pas d'algorithme convergent.
Recherche du sommet :
Les projetés sur la sphère unitaire et la régression circulaire fournissent un centre théorique, un rayon, mais aussi un écart-type sur ce rayon.
Donc un bon critère pour déterminer si S est un bon sommet du cône.
Reste à faire un maillage de l'espace et à appliquer la méthode pour chaque sommet du maillage, puis à chercher localement autour du meilleur candidat (diverses méthodes...).
C'est peut-être "lourd" en apparence... mais ça pourrait s'avérer plus efficace que la première approche.
A voir...
Bonjour et d'abord merci à tous pour votre participation à ce topic
j'ai trouvé une solution à mon tronc de cône en résolvant un système de compensation par les intermédiaires à partir de la formule que j'ai écrite sur le 02/12 à 2h54, j'ai ensuite repris mon calcul avec ta formule Razes mais avec les mêmes valeurs que j'ai trouvé de mon tronc de cône et je trouve les mêmes résultats
donc en conclusion, il existe plusieurs méthodes pour déterminer les paramètres d'un tronc de cône défini par un cercle à sa base avec un centre et un rayon, un vecteur directeur pour l'axe et une hauteur
et pour répondre partiellement à LeDino, il serait judicieux en effet de passer par une régression non linéaire type Levenberg-Marquard car j'ai des points qui sont sur mon tronc de cône avec un léger bruit, bien dispersés mais selon la configuration du terrain ces points ne sont que d'un côté du modèle mais cette solution nécessite un grand nombre de points sur mon modèle acquis non pas avec une station totale classique mais plutôt avec un scanner laser, on entre là dans le domaine de la segmentation d'un nuage de points, plusieurs études ont été menées à ce sujet, on peut en trouver sur le net, je m'en suis inspiré mais mon but était plutôt de rechercher assez simple et directe en fonction des données que je lève sur le terrain
et non ce n'est pas dans un cadre scolaire mais plutôt dans un cas professionnel pour un industriel, dans une usine de nickel plus précisément.
En espérant t'avoir éclairé et encore merci pour votre aide à tous.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :