Il ne s'agit pas d'entrer dans quelque site (h)anté, mais de revenir en arrière !
Macro-commande  Intersection de k disques
Ce n'est pas une boîte aux lettres, mais un bouton pour passer à la page suivante !
J'ai eu l'occasion d'aborder les problèmes d'intersection de disques (voir, plus haut, macro-commande Interdisques). Mais la méthode utilisée ne fonctionne pas dans le cas particulier où les disques sont centrés. J'ai donc cherché un autre procédé, puis j'ai voulu le généraliser. Pour cela, partant de trois exemples successifs (intersection de 2, 3 et 4 disques), j'ai trouvé par récurrence la forme générale d'une macro-commande pour l'intersection de k disques.

Et c'est ce que je vais expliquer ici.

A. Intersection de deux disques

La macro peut être suivie pas à pas en utilisant dans Cabri Edition/Revoir la construction du fichier (voir téléchargements) MacroInter2C.fig.

L'analyse de cette macro est donnée ci-après.

Macro Cabri II Plus vers. MS-Windows 1.2.5

Inter2C, no name
Help:
''deux cercles''
Mth: 0
CN:2, ON:9, FN:1, PO:8
CT:
circle, CS 1, default settings,
premier cercle ; 1 correspond à son centre (appelons-le C1) et 2 au cercle lui même
circle, CS 1, default settings,
second cercle ; 3 correspond à son centre (appelons-le C2) et 4 au cercle lui-même
Const:
Pt/, Mth:3, 0, CN:1, VN:2, Const: 2
point courant (appelons-le M) 5 sur le premier cercle (associé à Const: 2)
Seg, Mth:0, 0, CN:2, VN:2, Const: 1 5
segment (C1M) 6 reliant le centre du premier cercle 1 et le point courant précédent 5
Pt/, Mth:1, 0, CN:1, VN:2, Const: 6
point courant 7 (appelons-le P) sur le segment précédent 6
Lgth, Mth:1, 0, CN:2, VN:1, Const: 3 4
mesure de la distance 8 entre le centre 3 du second cercle et le second cercle (mesure de son rayon R2)
Lgth, Mth:1, 0, CN:2, VN:1, Const: 3 7
mesure de la distance 9 entre le centre 3 du second cercle et le point courant sur le segment 7 (C2P)
Formula, Mth:0, 0, CN:2, VN:1, Const: 9 8, formula: 2/(1-signe(a-b))
calcul de 2/(1-signe(C2P-R2)) : le résultat est 1 si le point P est à l'intérieur du cercle (C2), l'infini, sinon (Cabri annonce inexistant)
Dil, Mth:0, 0, CN:3, VN:1, Const: 7 1 10
une homothétie de centre C1 (1) et de rapport le résultat 10 précédent (1 ou l'infini) transforme le point P en P' : P' est confondu avec P, quand P est à l'intérieur du second cercle, est à l'infini (ou non défini) quand P est à l'extérieur du second cercle
Locus, Mth:0, 0, CN:2, VN:16, lk pts, locus, nb pts: 16, Const: 5 11
lieu 12 (arc de cercle de centre C1) du point P' (11) par rapport au point M (5)
Locus, Mth:2, 1, CN:2, VN:16, unlk pts, locus, nb pts: 16, Const: 7 12, default settings,
lieu (ensemble d'arcs de cercle concentriques de centre C1)du lieu précédent 12 par rapport au point P

B. Intersection de 3, de 4 disques

Pour généraliser la macro d'intersection à k disques, il faut d'abord préciser la formule qui va permettre de définir le point conditionnel à partir duquel un lieu, puis un lieu de lieu vont être dessinés, figurant l'aire commune à ces k disques.

Dans le cas de deux cercles (C1) et (C2), un point P est donné à l'intérieur de (C1). La condition pour qu'il se trouve à l'intérieur de (C2) est :

C2P <= R2

De là la formule donnée ci-après.
La fonction y(2) est égale égale à + 1 si la condition précédente est satisfaite, et à l'infini, dans le cas contraire (c'est-à-dire si C2P > R2).
Ce coefficient d'homothétie permet de conserver le point P, ou de l'envoyer « ad patres ».
Dans le cas de trois cercles, la double condition pour que P soit à l'intérieur de (C2) et de (C3) est :

C2P <= R2 ET C3P <= R3

La formule qui intègre la double condition se trouve aisément.
La généralisation pour le cas de k disques en découle.



Dans les deux macros suivantes, on trouvera facilement les mesures nécessaires et la formule définissant le coefficient d'homothétie.

Macro Cabri II Plus vers. MS-Windows 1.2.5

Inter3C, no name
Help:
"trois cercles"
Mth: 0
CN:3, ON:11, FN:1, PO:10
CT:
circle, CS 1, default settings,
circle, CS 1, default settings,
circle, CS 1, default settings,
Const:
Pt/, Mth:3, 0, CN:1, VN:2, Const: 2
Seg, Mth:0, 0, CN:2, VN:2, Const: 1 7
Pt/, Mth:1, 0, CN:1, VN:2, Const: 8
Lgth, Mth:1, 0, CN:2, VN:1, Const: 3 4
Lgth, Mth:1, 0, CN:2, VN:1, Const: 3 9
Lgth, Mth:1, 0, CN:2, VN:1, Const: 5 6
Lgth, Mth:1, 0, CN:2, VN:1, Const: 9 5
4 mesures de longueur (pour la dernière, l'ordre des nombres 9 5 aurait pu être permuté en 5 9, car bien évidemment
longueur(AB) = longueur(BA)

Formula, Mth:0, 0, CN:4, VN:1, Const: 11 10 13 12, formula: 4/((1-signe(a-b))*(1-signe(c-d)))
C'est la formule donnée plus haut.
Dil, Mth:0, 0, CN:3, VN:1, Const: 9 1 14
Locus, Mth:0, 0, CN:2, VN:16, lk pts, locus, nb pts: 16, Const: 7 15
Locus, Mth:2, 1, CN:2, VN:16, unlk pts, locus, nb pts: 16, Const: 9 16, default settings,

Macro Cabri II Plus vers. MS-Windows 1.2.5

Inter4C, no name
Help:
"quatre cercles"
Mth: 0
CN:4, ON:13, FN:1, PO:12
CT:
circle, CS 1, default settings,
circle, CS 1, default settings,
circle, CS 1, default settings,
circle, CS 1, default settings,
Const:
Pt/, Mth:3, 0, CN:1, VN:2, Const: 2
Seg, Mth:0, 0, CN:2, VN:2, Const: 1 9
Pt/, Mth:1, 0, CN:1, VN:2, Const: 10
Lgth, Mth:1, 0, CN:2, VN:1, Const: 3 4
Lgth, Mth:1, 0, CN:2, VN:1, Const: 3 11
Lgth, Mth:1, 0, CN:2, VN:1, Const: 7 8
Lgth, Mth:1, 0, CN:2, VN:1, Const: 11 7
Lgth, Mth:1, 0, CN:2, VN:1, Const: 5 11
Lgth, Mth:1, 0, CN:2, VN:1, Const: 5 6
Même remarque que dans la macro précédente : le 11 7 pourrait être remplacé par un 7 11 ;
de plus les deux dernières lignes pourraient être permutées avec les deux précédentes.

Formula, Mth:0, 0, CN:6, VN:1, Const: 13 12 15 14 16 17, formula: 8/((1-signe(a-b))*(1-signe(c-d))*(1-signe(e-f)))
Dil, Mth:0, 0, CN:3, VN:1, Const: 11 1 18
Locus, Mth:0, 0, CN:2, VN:16, lk pts, locus, nb pts: 16, Const: 9 19
Locus, Mth:2, 1, CN:2, VN:16, unlk pts, locus, nb pts: 16, Const: 11 20, default settings,


C. Intersection de k disques

À partir de CT:, le ou les nombre(s), en début de chaque ligne est(sont) associé(s) à l'objet défini par le code qui suit, sur la même ligne. Il(s) ne doit (doivent) pas être retranscrit(s) lorsque la macro est composée sur l'éditeur de texte.

Macro Cabri II Plus vers. MS-Windows 1.2.5

InterkC, no name
Help:
"k cercles"
Mth: 0
CN:k, ON:2k+5, FN:1, PO:2k+4
CT :
1,2 circle, CS 1, default settings,
3,4 circle, CS 1, default settings,
5,6 circle, CS 1, default settings,
...
2k-1, 2k circle, CS 1, default settings,
Const :
2k+1 Pt/, Mth:3, 0, CN:1, VN:2, Const: 2
2k+2 Seg, Mth:0, 0, CN:2, VN:2, Const: 1 2k+1
2k+3 Pt/, Mth:1, 0, CN:1, VN:2, Const: 2k+2
2k+4 Lgth, Mth:1, 0, CN:2, VN:1, Const: 3 4
2k+5 Lgth, Mth:1, 0, CN:2, VN:1, Const: 5 6
...
3k+2 Lgth, Mth:1, 0, CN:2, VN:1, Const: 2k-1 2k
3k+3 Lgth, Mth:1, 0, CN:2, VN:1, Const: 3 2k+3
3k+4 Lgth, Mth:1, 0, CN:2, VN:1, Const: 5 2k+3
...
4k+1 Lgth, Mth:1, 0, CN:2, VN:1, Const: 2k-1 2k+3
4k+2 Formula, Mth:0, 0, CN:2(k-1), VN:1, Const: 3k+3 2k+4 3k+4 2k+5 ... 4k+1 3k+2
,formula : 2^(k-1)/((1-signe(a-b))*(1-signe(c-d))*...*(1-signe( - )))
4k+3 Dil, Mth:0, CN:3, VN:1, Const: 2k+3 1 4k+2
4k+4 Locus, Mth:0, 0, CN:2, VN:16, lk pts, locus, nb pts : 16, Const : 2k+1 4k+3
4k+5 Locus, Mth:2, 1, CN:2, VN:16, unlk pts, locus, nb pts : 16, Const : 2k+3 4k+4, default settings,

D. Application aux outils de la barre Faisceaux et Champs en Optique Géométrique

La macro-commande généralisée a été appliquée à une intersection de 6 disques (en remplaçant k par 6). Il n'a donc pas été nécessaire de travailler sur Cabri ; un éditeur de texte (du type Notepad) a suffi.

Les icones 16×16 et 32×32 (dont le code est coupé sur la droite, ici, pour des raisons de mise en page) ont été dessinés avec le programme Paint modifié dont il est question dans les rubriques 20, 21 Couleurs de Cabri et CabrIcon.





On pourra vérifier dans le code qui suit la traduction de la macro-commande générale.



Il ne s'agit pas d'entrer dans quelque site (h)anté, mais de revenir en arrière ! Ce n'est pas une boîte aux lettres, mais un bouton pour passer à la page suivante !