PDA

Voir la version complète : cercle tangent à 2 autres cercles



flahaut
12/02/2006, 19h20
salut
qqun a-t-il une solution pour créer un cercle tangent à 2 autres , ou tangent à 2 droites de direction quelconque...
je me suis cassé la tête sur les options de magnétisme sans y parvenir.... :coup:
merci

Aurety
12/02/2006, 19h40
euh... tu pars de cercles primitives splines avec un rayon précis, tu décales un second cercle spline du rayon... en x=rayon, tes splines ont un point en commun et une tangente égale ( peut-être inversée par contre )... Pareil pour le troisième. Pas besoin de magnétisme

flahaut
12/02/2006, 19h46
je parle de cercles non alignés...par exemple si je pars d'un cercle de rayon 100 centre (0,0,0) et d'un autre de rayon 100 centre (350,0,0)
dans ce cas , le troisième cercle tangent aux 2 premiers ne sera pas sur l'axe des X.....

Tengaal
12/02/2006, 19h50
J'avais fait un truc expérimental en Coffee qui est plus ou moins lié au genre de chose que tu cherches.
http://tengaal.free.fr/fc4d/coffee/circle_3pts.c4d

Il s'agit d'avoir une sphère qui s'inscrit en permanence entre 3 points mobiles, ces 3 points sont donc en permanence à la surface de la sphère qui se replace et se redimensionne en permanenence pour "toucher" ces 3 points. :wink:

Je ne sais pas si le principe peut t'aider...

flahaut
12/02/2006, 19h53
merci , je vais regarder ça
bien entendu , c'est du COFFEE.. :D

champagne
12/02/2006, 20h36
Bidouille un peu complexe, mais mathématique et exacte:
Tu traces un droite (spline linéaire à deux points) dont tu donne à chaque point les coordonnée du centre de chacun des cercles.
La taille de ta spline (à calculer si elle est en trois axes, donc pas comme sur ton exemple qui est plus simple) moins la somme des rayons des cercles te donne le diamètre du cercle tangent aux autres.
Ensuite tu fais un plan carré à deux segments (donc égaux) dont les cotés sont égaux à la spline.
Dans ta ligne de temps, tu donnes à l'objet la spline comme piste de position (avec un total impaire de clés).
En allant sur la clé du milieu (d'où l'impaire), les coordonnées du point centrale du plan te donnent les coordonnées du centre du cercle mesuré tout à l'heure.
En espérant être assez clair, ça parait compliqué mais ça se fait en deux minute en fait :wink:

flahaut
12/02/2006, 21h57
La taille de ta spline (à calculer si elle est en trois axes, donc pas comme sur ton exemple qui est plus simple) moins la somme des rayons des cercles te donne le diamètre du cercle tangent aux autres.

si les cercles sont alignés , oui , mais dans mon cas , les points de tangence sont imposés , donc le centre du 3ème cercle n'est pas forcément aligné.

champagne
12/02/2006, 23h04
Ha oui, pardon, si les trois cercles ne sont pas alignés, évidement ça ne vas pas :oops:
Mais alors, si les points de tangence sont imposés, leurs coordonnées sont repérables dans l'espace, tu peux alors de la même manière que précédement trouver leur distance.
On se retrouve avec un triangle isocèle ayant pour base cette distance et pour cotés égaux le rayon du troisième cercle.
Je pense qu'avec ça on devrait pouvoir trouver le rayon de ce cercle.
Je ressortirai mes vieux bouquins de math demain pour voir.

luistappa
13/02/2006, 00h37
Salut Flahaut, la solution : faire les splines dans un logiciel de dessin vectoriel digne de ce nom... donc pas dans C4D ;-)

flahaut
13/02/2006, 19h43
ben justement , Luis , je suis actuellement une formation autocad* :puke:
mais il y a quelques bons plans dans cet horrible bidule* comme celui de cliquer 2 points de tangence , de spécifier le diamètre du cercle , et hop ! le cercle est tracé !
je pensais naivement pouvoir refaire ça dans C4D avec l'option tangente du magnétisme .... :roll:
ne te prends pas le tête , Champagne , je connais la méthode , merci pour la recherche* :wink:

luistappa
14/02/2006, 00h22
Il est effectivement urgent que Maxon dépoussière les outils splines car je suis de ton avis, qu'Autocrad fasse mieux... Là c'est la honte! Non, c'est injuste... sur les tracés vectoriels, n'importe quel autre logiciel fait mieux!

Sinon Flahaut, bon courage pour ta formation ;-)

base80
14/02/2006, 03h49
flahaut fait moi un croquis svp. Ca parait simple comme ouvrir une boite de bière ce truc.
Simple petit calcul de pita-gore, al-gèbre. A ne pas con-fondre avec al-gore, pita-chèvre

lenogre
14/02/2006, 10h10
Je crois qu'Amapi le fait. Y a plein de façons de faire un cercle dans Amapi.

flahaut
14/02/2006, 18h32
rhaaa l'autre avec son Amapi....* :lol:
sinon , mon cher Base , voici de quoi écluser quelques packs de bière et enfumer gravement ton bureau :
automatise l'accrochage tangent du cercle actif aux 2 cercles de l'image 1 , aux 2 droites de l'image 2
http://perso.wanadoo.fr/pierre.flahaut/C4D_cercletangent.jpg
http://perso.wanadoo.fr/pierre.flahaut/C4D_cercletangent2.jpg
à bientôt ( je t'envoie un DVD de mon dernier court métrage si tu trouves...)

base80
15/02/2006, 23h41
La honte tellement c'est simple
pas de trigo, pas de algèbre.
fo additionner simplement et être ingénieux pour trouver une astuce, le tag cible.

http://www.base80.com/tips/3rings/3rings.c4d.zip

les trois cercles sont réglable en diamètre comme normalement

base80
16/02/2006, 00h04
si tu veux librement déplacer le cercle 1 et 2 fo modifier l'xpresso.
coupe la
http://www.base80.com/tips/3rings/coupe-la.jpg

flahaut
16/02/2006, 16h40
je n'ai pas pu lire ton fichier en V8.2 , ni même dans la R9 démo* :o
je constate sur l'image que des positions Z de cercles vont être modifiées par cet xpresso , or je voudrais que les 2 autres cercles restent à leur place , c'est le cercle actif qui doit se " coller" aux 2 autres sans que ceux ci bougent ( pareil avec les 2 droites )
d'autre part , à quoi correspond ce noeud " instance " ?
je crois que je sens une solution au niveau d'une addition des rayons + une astuce liée à la distance entre les 2 cercles fixes.
un peu de trigo quand même ... :puke:
ouvre une autre bouteille..... je m'y colle aussi...

base80
16/02/2006, 17h06
vla la v8
moi pas de prob pour l'ouvrir
http://www.base80.com/tips/3rings/3ringsv8.c4d.zip

en fait ce que je fait c'est;
je prend 3 cercles dont le 3e doit toucher les deux autres.
je met le cercle 3 dans un null dans le cercle 1 a la bonne distance (rayon 1 +3)
et je met une instance du cercle 3 (invisible) dans un null dans le cercle 2 a la bonne distance (rayon 2+3)
ensuite je cible le premier null vers l'instance dans le 2e null et vice versa.

flahaut
16/02/2006, 19h51
c'est comme les bouteilles , tu n'as jamais de problèmes pour ouvrir* :mrgreen:
j'ai pu l'ouvrir cette fois , bravo* :prie:
et pour les 2 droites ? on ne peux pas jouer avec les rayons !
tu as presque gagné ton DVD* :mrgreen:
j'étais personnellement parti sur une solution avec les points de tangence paramétrables grâce à* des "aligner sur spline " .
le fait de déplacer ces points de tangence aurait contraint le diamètre du cercle 3 ( celui du haut )
c'est ce que fait autocrad : tu définis les points de tangence pour dessiner le cercle3
Est-ce possible ?http://perso.wanadoo.fr/pierre.flahaut/cerclestangents3.jpg

base80
16/02/2006, 23h14
je suis un peu lent d'esprit
les lignes tu peux m'expliquer? elle se croisent ou?
d'ou viennent t'elle...
ca doit encore être un truc simple

flahaut
17/02/2006, 12h18
2 lignes droites quelconques : formant un angle quelconque entre elle.
c'est le même problème qu'avec mes 2 points violets et verts alignés sur les cercles.
plus généralement , je voudrais contraindre* le centre du cercle 3 à se positionner à égale distance de ces 2 points verts et violets et qu'il soit tangent aux 2 autres courbes.
il est facile de récupérer une distance avec le noeud distance , mais comment contraindre un point à rester à égale distance les points verts et violets? j'ai essayé avec les coordonnées , mais j'obtiens des trucs bizarres... :oops:

base80
17/02/2006, 12h24
ben dans le truc que j'ai fait tu ajoute un cercle(4) dans le cercle 3 et tu le fait plus petit, il resteras tangent mais a distance.

Moi les angles quelconque je sais pas faire.
Mais les points violet et vert tu les a deja dans ce que je t'ai donné.
Ajoute une ligne ou plutôt un null dans les null ciblés a la distance du rayons des cercle 1et2,...et ce null serras positionné au ras des cercles.

Dans l'xpresso tu prend les valeurs avant le calcul (add)

flahaut
17/02/2006, 12h31
rien compris pour l'instant , mais je vais regarder ça