Il ne s'agit pas d'entrer dans quelque site (h)anté, mais de revenir en arrière !
Macro-commande PointObjetB
Ce n'est pas une boîte aux lettres, mais un bouton pour passer à la page suivante !
Sont donnés : un point sur l'axe des x (centre optique de la première lentille, par exemple), l'axe des x, un point C et deux cercles de centre C, un nombre positif très petit (par exemple 0,0001).

La macro construit un point B (point objet) dont la position peut être commandée transversalement et obliquement par deux manettes.
     
PointObjetB a
PointObjetB b
avant
après
PointObjetB c
PointObjetB d
déplacement transversal
déplacement oblique

0,000001 a été masqué ; l'outil trace appliqué au point B a été utilisé pour figurer les deux mouvements.

A. Macro-commande

La macro-commande est commentée (en rouge) à partir du fichier texte.

Pour bien comprendre l'enchaînement des constructions, il est recommandé de se munir d'un crayon et d'une feuille de papier, ou alors, de travailler directement sur CABRI.

On rappelle que chaque élément géométrique est numéroté, dans l'ordre de son apparition.

Les lignes concernant les icônes ont été supprimées.

PointObjetB, no name

Help:
''Axes, point sur axe x, centre C, deux cercles de centre C, nombre 0,1''
le nombre 0,1 peut être remplacé par un nombre beaucoup plus petit (0,000001) comme dans l'exemple ci-dessus ; 0,1 est la valeur choisie dans la construction de la macro, pour y voir clair ! l'utilité de ce nombre est expliquée plus bas (arc de cecle 20)
Mth: 0
CN:6, ON:22, FN:12, PO:6
CT:
coordinate system, CS 1, default settings,
1 représente le centre des coordonnées et 2 les axes
point, CS 0, default settings,
point 3, sur l'axe des x
point, CS 0, thick, CIRCLE,
point 4 (centre des deux arcs de cercle de commande
circle, CS 1, invisible,
premier cercle (petit) : centre 5, cercle 6
circle, CS 1, invisible,
second cercle (grand) : centre 7, cercle 8
number, CS 0, default settings,
nombre 9 (choisi égal à 0,1)
Const:
Perp, Mth:0, 0, CN:2, VN:4, axis:y, Const: 7 2
droite 10 : perpendiculaire menée du point 7 à l'axe y des axes 2
Perp, Mth:0, 0, CN:2, VN:4, axis:x, Const: 7 2
droite 11 : perpendiculaire menée du point 7 à l'axe x des axes 2
Int, Mth:0, 0, CN:2, VN:1, int ind:0, Const: 10 8
point 12 d'intersection (point à droite) de la droite 10 avec le cercle 8
Int, Mth:0, 1, CN:2, VN:1, int ind:0, Const: 11 6, invisible,
point 13 d'intersection (point en bas) de la droite 11 avec le cercle 6
Int, Mth:0, 1, CN:2, VN:1, int ind:0x10000, Const: 11 6, invisible,
point 14 d'intersection (point en haut) de la droite 11 avec le cercle 6
Int, Mth:0, 1, CN:2, VN:1, int ind:0x10000, Const: 10 6, invisible,
point 15 d'intersection (point à gauche) de la droite 10 avec le cercle 6
Arc, Mth:0, 1, CN:3, VN:5, Const: 14 15 13, color:O,
arc de cercle 16 joignant les points 14 15 et 13
Int, Mth:0, 1, CN:2, VN:1, int ind:0x10000, Const: 11 8, invisible,
point 17 d'intersection (point en haut) de la droite 11 avec le cercle 8
Rot, Mth:0, 1, CN:3, VN:1, Const: 12 7 9, invisible,
point 18 obtenu par la rotation du point 12 (à droite sur le grand cercle) autour du centre 7 (grand cercle) de la valeur du nombre 9
Refl, Mth:0, 1, CN:2, VN:1, Const: 18 11, invisible,
point 19, symétrique du point 18 par rapport à la droite 11 (verticale)
Arc, Mth:0, 1, CN:3, VN:5, Const: 19 17 18, color:meo,
arc de cercle 20 défini par les points 19, 17 et 18
cet arc de cercle permet d'éliminer les discontinuités quand le point objet est à l'infini ; plus le nombre 9 sera petit (il peut être modifié une fois la macro appliquée) et plus le point ''à l'infini'' se rapprochera de l'infini. Pour s'en assurer, on peut afficher les coordonnées du point B, les fixer au voisinage du centre des coordonnées, bloquer la commande axiale de B à l'horizontale, et faire varier le nombre 9 : 0,1 / 0,01 / 0,001 etc. On constatera que le point B s'éloigne de plus en plus.

Perp, Mth:0, 0, CN:2, VN:4, axis:x, Const: 3 2
droite 21 perpendiculaire à l'axe x des axes 2 au point 3
Int, Mth:0, 0, CN:2, VN:1, int ind:0, Const: 10 21
point d'intersection 22 de la droite 21 avec la droite 10
Pt/, Mth:4, 1, CN:1, VN:2, Const: 16, color:O, thick, CIRCLE,
point courant 23 sur l'arc de cercle 16
Pt/, Mth:4, 1, CN:1, VN:2, Const: 20, color:meo, thick, CIRCLE,
point courant 24 sur l'arc de cercle 20
Seg, Mth:0, 1, CN:2, VN:2, Const: 7 23, color:O,
segment 25 joignant les points 7 et 23 ;
il s'agit de la manette de commande du mouvement transversal de B

Par, Mth:0, 0, CN:2, VN:4, Const: 3 25
droite 26 parallèle au segment 25 passant par le point 3
Seg, Mth:0, 0, CN:2, VN:2, Const: 7 24
segment 27 joignant les points 7 et 24 ;
il s'agit de la manette de commande du mouvement axial de B

Par, Mth:0, 0, CN:2, VN:4, Const: 22 27
droite 28 parallèle au segment 27 et passant par le point 22
Int, Mth:0, 0, CN:2, VN:1, int ind:0, Const: 28 2
point 29 d'intersection de la droite 28 avec l'axe des x des axes 2
Perp, Mth:0, 0, CN:2, VN:4, axis:x, Const: 29 2
droite 30 perpendiculaire à l'axe x²des axes 2 au point 29
Int, Mth:0, 1, CN:2, VN:1, int ind:0, Const: 26 30, default settings,
point 31 d'intersection de la droite 30 avec la droite 26 : c'est le point B

B. Remarques

  1. Pour analyser cette macro-commande, j'ai réalisé plusieurs mini-macros. En particulier pour comprendre comment étaient représentés les deux points d'intersection d'une droite avec un cercle.

    La convention semble être la suivante :

    Intersection avec un cercle


    L'origine étant en W, et le sens étant trigonométrique, le premier point de l'intersection rencontré est codé par int ind:0, et le second par int ind:0x10000.

    Pour une droite verticale, le point qui coïncide avec W est noté int ind:0.

  2. Le déplacement transversal n'a pas été traité comme le déplacement axial (approximation de l'infini), car il reste limité dans l'approximation de Gauss à des angles relativement petits qui, même s'ils sont agrandis par affinité, ne deviennent jamais infinis.

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 !