Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#26 05-04-2021 09:39:41

Bernard-maths
Membre
Lieu : 34790 Grabels
Inscription : 18-12-2020
Messages : 1 314

Re : La réduction des polyèdres convexes à l'intersection de demi-espaces

Bonjour les topologistes !

Je suis cruellement déçu par les  trous du cube, ceci montre bien que certains n'ont pas les pieds sur Terre ...?

Je n'ai quasiment jamais fait de topologie, alors ... si je mets 6 lacets autour des 6 trous de l'objet volume, comment en disparaît-il 1 quand on l'aplatit ???

Mais ça reste intéressant à suivre !

B-m

Dernière modification par Bernard-maths (05-04-2021 09:40:41)


Ma philosophie est immuable : l'immobilisme tue ...
Les Anciens ont trouvé le plus facile ... il nous reste le plus dur !

Hors ligne

#27 05-04-2021 13:12:58

Wiwaxia
Membre
Lieu : Paris 75013
Inscription : 21-12-2017
Messages : 409

Re : La réduction des polyèdres convexes à l'intersection de demi-espaces

Bernard-maths a écrit :

... Je n'ai quasiment jamais fait de topologie, alors ... si je mets 6 lacets autour des 6 trous de l'objet volume, comment en disparaît-il 1 quand on l'aplatit ??? ...

L'aplatissement de l'objet ne modifie pas le nombre de trous.
L'opération est à rapprocher du tracé des diagrammes de Schlegel.
https://fr.wikipedia.org/wiki/Diagramme_de_Schlegel
https://mathcurve.com/polyedres/polyedre/polyedre.shtml

Hors ligne

#28 05-04-2021 13:50:34

Bernard-maths
Membre
Lieu : 34790 Grabels
Inscription : 18-12-2020
Messages : 1 314

Re : La réduction des polyèdres convexes à l'intersection de demi-espaces

Bonjour !

Wiwaxia, que penses-tu de ma proposition en #20 ?

J'ai l'équation en tranches d'espace, et l'équation par un point intérieur, qui doit ressembler à celle par les demi-plans ...

Je vais commencer par les tranches.

A plus, B-m


Ma philosophie est immuable : l'immobilisme tue ...
Les Anciens ont trouvé le plus facile ... il nous reste le plus dur !

Hors ligne

#29 06-04-2021 17:49:39

Bernard-maths
Membre
Lieu : 34790 Grabels
Inscription : 18-12-2020
Messages : 1 314

Re : La réduction des polyèdres convexes à l'intersection de demi-espaces

Bonsoir à tous !

Je commence une 1ère équation du tétraèdre !

Ce qui suit est la reprise de travaux antérieurs menés en 2018 et suivant, ainsi que leur compilation. Je me limiterai dans cette présentation au tétraèdre régulier, une autre édition parlera du tétraèdre non régulier (si j’ai le … temps).

1°) Mise en repère et mesures :
Vu les nombreuses propriétés du tétraèdre régulier, je vais le prendre inscrit dan un cube de demi côté a ≥ 0. Soit donc ABCD ce tétraèdre, avec A(a ;a ;a), B(a ;-a ;-a), C(-a ;a ;-a) et D(-a ;-a ;a). Le point O est l’origine du repère (ici a = 3).

KDgqU3FKVLG_T%C3%A9tra-r%C3%A9gulier-image-1-2021-04-06.jpg

Le tétraèdre est un polyèdre, c’est donc un solide plein, son volume est plein. Par contre, en général, on s’intéresse à la partie visible, donc sa surface constituée de 4 triangles équilatéraux …
Quelles sont ses dimensions ? Par construction, ses arêtes sont des diagonales d’un cube de côté c = 2a, donc l’arête vaut b = 2a√2 . Les 4 hauteurs se recoupent au point O, et ont pour valeur h = 4a √3/3 = 2c √3/3 = b √6/3 !
On en déduit l’aire latérale et le volume de ABCD : Aire = 2b² √3 , et Volume = b^3  √2/6 .



2°) Quelles équations ?
    a ) Quand on parle d’équation, en général on pense à l’équation de surface, comme pour la sphère, par exemple. Ou pour toutes les surfaces que l’on trouve en grand nombres, mais ce sont des surfaces … Or ici nous avons un solide, dont nous allons chercher une équation « pleine ». Nous reparlerons plus tard de l’équation de surface …


    b ) Le tétraèdre est un solide convexe, c'est-à-dire que pour chacune de ses 4 faces, il est entièrement d’un seul côté du plan contenant la face. Autrement dit, pour chaque face, il est dans un demi-espace. Il est donc à l’intersection des 4 demi-espaces (repérés). Or pour définir une équation de demi-espace, il suffit de connaître l’équation du plan frontière, et de jouer sur les signes …

    c ) On peut aussi considérer le tétraèdre comme contenu dans une tranche de l’espace, définie par 2 plans parallèles. Ainsi chaque plan de chaque face et le plan parallèle passant par le sommet opposé vont définir 4 tranches d’espace. Le tétraèdre est alors considéré comme l’intersection de ces 4 tranches … L’épaisseur d’une tranche est égale à la hauteur h du tétraèdre. Remarquons que les 4 plans, parallèles aux 4 faces, se recoupent et définissent alors le tétraèdre dual (extérieur).

    d ) Une propriété du tétraèdre permet d’avoir une 3ème approche : si l’on considère un point de l’espace, et ses 4 distances aux 4 plans des faces, la somme des 4 distances passe par un minimum constant pour tout point du tétraèdre plein. La somme minimale est égale à la hauteur h du tétraèdre.

    Il n’est pas exclu de trouver d’autre(s) méthode(s) … selon les objets étudiés.


3°) Equation avec la propriété d du tétraèdre :
Soient A’, B’, C’ et D’ les pieds des hauteurs issues de A, de B, de C et de D. Soit M un point de l’espace, qui se projette en H, I, J et K sur les plans opposés à A, B, C et D.

KDgq0upPbQG_T%C3%A9tra-r%C3%A9gulier-image-2-2021-04-06.jpg

Il faut maintenant trouver des équations des 4 plans des faces. Pour cela nous avons des vecteurs normaux qui sont  (AO), (BO), (CO) et (DO). On a par exemple  (AO) (-a ;-a ;-a) pour le plan BCD passant par A’(-a/3 ;-a/3 ;-a/3), d’où  le produit scalaire (AO) . (A'M) = 0. On obtient … x + y + z + a = 0 pour BCD. De même on aura ABC : x + y – z – a = 0 ; ABD : x - y + z - a = 0  ; ACD : x - y - z + a = 0 (aux signes près). Il reste à écrire que MH + MI + MJ + MK = h. La distance de M au plan ABC est : |x + y – z – a|/√3 ...
Ce qui donne finalement ... :

|x + y – z – a|+|x - y + z - a|+|x - y - z + a|+|x + y + z + a| = h √3 = 4a, et enfin :

|x + y – z – a|+|x - y + z - a|+|x - y - z + a|+|x + y + z + a| - 4a = 0.



Peut-on vérifier cette équation ? Voyons la figure suivante …

KDgq2xUbCaG_T%C3%A9tra-r%C3%A9gulier-image-3-2021-04-06.jpg

On y voit le tétraèdre, et un point Z en rouge, dont les coordonnées s’affichent à gauche : xZ = 3, yZ = 4 et zZ = 0. Par le point Z, on trace un plan (rouge) horizontal, recoupant (ou non) le tétraèdre selon un quadrilatère vert (appelé q7).

Si on place le curseur sur le point Z, on voit apparaître un flèche à 4 branches « horizontales », ou à 2 branches « verticales », et en cliquant sur Z, la forme change … Bien sur si on clique-tenu sur Z, on peut alors le déplacer dans le sens des flèches : horizontalement ou verticalement !

Verticalement : Z monte ou descend, le plan rouge aussi ! On peut alors voir le quadrilatère vert se déformer, et même disparaître si Z est trop haut ou trop bas …

Horizontalement : Z se place « dans » le plan rouge, et on peut le déplacer/mettre « dans » le quadrilatère vert, à ce moment là Z devient vert ! Z redevient rouge en quittant ce quadrilatère vert.

De plus, on peut voir le nombre sZ s’afficher, et on peut constater que sZ = 0 lorsque Z est vert, et sZ > 0  lorsque Z est rouge !

En effet sZ est l’équation associée au tétraèdre plein :

sZ = abs(xZ + yZ - zZ - a) + abs(xZ - yZ + zZ - a) + abs(xZ - yZ - zZ + a) + abs(xZ + yZ + zZ + a) - 4a

On peut ainsi vérifier que l’équation trouvée pour le tétraèdre est une « bonne « équation » !

KDgrhfQ2UlG_T%C3%A9tra-r%C3%A9gulier-image-4-2021-04-06.jpg

Voilà pour cette 1ère équation, je vous donne les liens pour les 2 programmes GeoGebra, j'espère que vous pourrez les charger, et les manipuler ...

https://cjoint.com/doc/21_04/KDgrllcMX8 … -01-22.ggb

https://cjoint.com/doc/21_04/KDgrmpuGlZ … -04-05.ggb


Cordialement, Bernard-maths

Dernière modification par Bernard-maths (06-04-2021 22:02:40)


Ma philosophie est immuable : l'immobilisme tue ...
Les Anciens ont trouvé le plus facile ... il nous reste le plus dur !

Hors ligne

#30 07-04-2021 08:52:53

Wiwaxia
Membre
Lieu : Paris 75013
Inscription : 21-12-2017
Messages : 409

Re : La réduction des polyèdres convexes à l'intersection de demi-espaces

Bonjour,

La perspective de tes schémas est bien rendue. Je tâcherai de revenir sur les équations.

Bernard-maths a écrit :

... Pour la suite, je te propose un tétraèdre régulier ... tu le fais en demi-espaces, et moi en tranches d'espace.
Je propose A(3,3,3), B(3,-3,-3), C(-3,3,-3) et D(-3,-3,3) ... OK ? ...

Les coordonnées des sommets s'obtiennent à un facteur près par l'algorithme sommairement résumé:


FOR i:= -1 TO 1 DO
  FOR j:= -1 TO 1 DO
    FOR k:= -1 TO 1 DO
      BEGIN
        s:= i + j + k; p:= x * j * k;
        IF (p<>0) AND ((s=-1) OR (s=3)) DO
          BEGIN
            x:= D * i; y:= D * j; z:= D * k
          END
      END;          

Le tétraèdre régulier se singularisant par un dual de même nature, les normales aux faces sont opposées aux vecteurs position des sommets; elles sont par conséquent données par les conditions:

(p<>0) AND ((s=1) OR (s=-3))

Comme auparavant, les indices et les coordonnées des sommets n'ont pas été calculés.

Voici donc le tableau de résultats et l'image auxquels conduisent le programme source; les faces sont les plans tangents à la sphère centrée à l'origine et de rayon Rsph = 0.340*Rcen ; la perspective correspond aux paramètres

Latitude La = 25° , Longitude = 40° .

KDhhKZ2dbBx_Tableau-2-poly%C3%A8dres.png
Figure en-dessous, pour illustration du procédé, le polyèdre à 64 faces (43) dont les normales sont très simplement calculées à partir de 3 entiers (i, j, k) variant de 0 à 3 (Rsph = 0.800*Rcen, La = 20°, Lo = 40°); il y a dans ce cas 3 plans de symétrie, et un centre de symétrie.

Le programme source relatif à la représentation du tétraèdre figure ci-dessous:

 PROGRAM Polyedre;

(*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

 Repr‚sentation d'un t‚traŠdre à partir des normales aux faces

HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*)

 USES Crt, E_Texte, U_Copie_1F, Math, U_Math;

// CONST Nsomm = 4;
 CONST Nface = 4;

 TYPE Ve3D = RECORD  x, y, z: Reel  END;
//      Tab_V = ARRAY[1..Nsomm] OF Ve3D;
      Face = RECORD  Sa, Sb, Sc: Byte;
                     Un: Ve3D; Dc: Reel  END;
      Tab_F = ARRAY[1..Nface] OF Face;
      Tab_C = ARRAY[1..Nface] OF Pixel;

 VAR Rcen: Z_32; Rsph: Reel;
     Vun1, Vun2, Vun3: Ve3D;
//     LstS: Tab_V;
     LstF: Tab_F;
     LstC: Tab_C;

(*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

 Utilitaires

HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*)

 FUNCTION Pvect(Wa, Wb: Ve3D): Ve3D;
   VAR p, q: Reel; W: Ve3D;
   BEGIN
     p:= Wa.y * Wb.z; q:= Wa.z * Wb.y; W.x:= p - q;
     p:= Wa.z * Wb.x; q:= Wa.x * Wb.z; W.y:= p - q;
     p:= Wa.x * Wb.y; q:= Wa.y * Wb.x; W.z:= p - q; Result:= W
   END;

 FUNCTION Diff2V(Wa, Wb: Ve3D): Ve3D;
   VAR W: Ve3D;
   BEGIN
     W.x:= Wa.x - Wb.x; W.y:= Wa.y - Wb.y;
     W.z:= Wa.z - Wb.z; Result:= W
   END;

 FUNCTION Vunit(V: Ve3D): Ve3D;
   VAR I1, N1, p, q, r, s: Reel; W: Ve3D;
   BEGIN
     p:= Sqr(V.x);     q:= Sqr(V.y);   r:= Sqr(V.z);   s:= p + q;
     N1:= Sqrt(r + s); I1:= 1 / N1;
     W.x:= V.x * I1;   W.y:= V.y * I1; W.z:= V.z * I1; Result:= W
   END;

 FUNCTION Pscal(Wa, Wb: Ve3D): Reel;
   VAR p, q, r, s: Reel;
   BEGIN
     p:= Wa.x * Wb.x; q:= Wa.y * Wb.y; r:= Wa.z * Wb.z;
     s:= p + q;       Result:= r + s
   END;

(*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

 Caculs relatifs au polyŠdre

HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*)

 FUNCTION CombLin3V(C1, C2, C3: Z_32; V1, V2, V3: Ve3D): Ve3D;
   VAR W: Ve3D;
   BEGIN
     WITH W DO
       BEGIN
         x:= C1 * V1.x; IncR(x, C2 * V2.x); IncR(x, C3 * V3.x);
         y:= C1 * V1.y; IncR(y, C2 * V2.y); IncR(y, C3 * V3.y);
         z:= C1 * V1.z; IncR(z, C2 * V2.z); IncR(z, C3 * V3.z)
       END;
     Result:= W
   END;

 FUNCTION Identif_F(X1, Y1, Z1: Z_32): Byte;
   VAR j, Jf: Byte; Max, p, q, r, s: Reel; W: Ve3D;
   BEGIN
     W:= CombLin3V(X1, Y1, Z1 + 1, Vun1, Vun2, Vun3); Jf:= 0; Max:= 0;
     FOR j:= 1 TO Nface DO
       BEGIN
         p:= Pscal(LstF[j].Un, W); q:= p - LstF[j].Dc;
         r:= Abs(q);               s:= q + r;
         IF (s>Max) THEN BEGIN
                           Jf:= j; Max:= s
                         END
       END;
     Result:= Jf
   END;

 FUNCTION F_Polyedre(X1, Y1, Z1: Z_32): Reel;
   VAR j: Byte; p, q, r, s: Reel; W: Ve3D;
   BEGIN
     W:= CombLin3V(X1, Y1, Z1, Vun1, Vun2, Vun3);
     s:= 0;
     FOR j:= 1 TO Nface DO
       BEGIN
         p:= Pscal(LstF[j].Un, W); q:= p - LstF[j].Dc;
         r:= Abs(q);               IncR(s, q + r)
       END;
     Result:= s
   END;

 PROCEDURE Calc_Mat_Im2(La, Ha, Rc: Z_32; VAR Ma2: Tab_Pix);
   CONST Seuil = 1E-10; P000: Pixel = (0, 0, 0);
   VAR Iface: Byte;
       Xcen, Ximg, Xm, Ycen, Yimg, Ym, Zimg, Zmin: Z_32;
       u: Reel; Px: Pixel;
   BEGIN
     Xcen:= La DIV 2; Ycen:= Ha DIV 2; Zmin:= -2 * Rc;
     FOR Xm:= 0 TO (La - 1) DO
       BEGIN
         Ximg:= Xm - Xcen; We(10, 40, Xm, 6);
         FOR Ym:= 0 TO (Ha - 1) DO
           BEGIN
             Yimg:= Ym - Ycen; Zimg:= 0;
             REPEAT
               Dec(Zimg); u:= F_Polyedre(Ximg, Yimg, Zimg + Rcen)
             UNTIL ((u<Seuil) OR (Zimg=Zmin));
             IF (Zimg=Zmin) THEN Px:= P000
                            ELSE BEGIN
                                   Iface:= Identif_F(Ximg, Yimg,
                                                     Zimg + Rcen);
                                   Px:= LstC[Iface]
                                 END;
             Ma2[Xm,Ym]:= Px
           END
       END
   END;

(*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

 Calcul des couleurs

HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*)

 FUNCTION Max3R(p, q, r: Reel): Reel;
   VAR m: Reel;
   BEGIN
     IF (p>q) THEN m:= p ELSE m:= q;
     IF (m<r) THEN m:= r; Result:= m
   END;

 CONST Kc2 = 30; Kc1 = Kc2 - 1; Kc3 = Kc2 + 1;

 PROCEDURE Init_Lc(VAR L_f: Tab_F; VAR L_c: Tab_C);
   CONST m = 255.499;
   VAR k: Byte; s, t, u, v, w: Reel; Px: Pixel;
   BEGIN
     FOR k:= 1 TO Nface DO
       BEGIN
         WITH LstF[k].Un DO
           BEGIN
             u:= Frac(Kc1 * (1.4 + x)); v:= Frac(Kc2 * (1.5 + y));
             w:= Frac(Kc3 * (1.6 + z)); s:= Max3R(u, v, w);
             t:= m / s;                 Px[1]:= Round(t * u);
             Px[2]:= Round(t * v);      Px[3]:= Round(t * x)
           END;
         L_c[k]:= Px
       END
   END;

(*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

 D‚termination des sommets, des faces et des arˆtes

HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*)

 PROCEDURE AffF(VAR L_F: Tab_F);
   CONST L1 = 2; L2 = L1 + 1; v = 11; w = 5;
   VAR k: Byte;
   BEGIN
     E(1012); Wt(1, L1, '    j');
     E(0015); Write('   Ja   Jb   Jc      ');
     E(0010); Write('Nx         Ny         Nz        ');
     E(0014); Write('Dcen');
     FOR k:= 1 TO Nface DO
       WITH L_f[k] DO
         BEGIN
           E(0012); We(1, k + L2, k, w);
           E(0015); Write(Sa:w, Sb:w, Sc:w);
           E(0010); Write(Un.x:v:w, Un.y:v:w, Un.z:v:w);
           E(0014); Write(Dc:v:w)
         END;
     A_; E(1015)
   END;

 CONST DegRad = Pi / 180;

 PROCEDURE CalcF(Rs_: Reel; VAR LstF: Tab_F);
   VAR i, j, k, Sij, Sijk: Z_08; h: Byte; W_: Ve3D;
   BEGIN
     h:= 0;
     FOR i:= -1 TO 1 DO
       IF (i<>0) THEN
         FOR j:= -1 TO 1 DO
           IF (j<>0) THEN
             BEGIN
               Sij:= i + j;
               FOR k:= -1 TO 1 DO
                 IF (k<>0) THEN
                   BEGIN
                     Sijk:= Sij + k;
                     IF ((Sijk=-3) OR (Sijk=1)) THEN
                       BEGIN
                         Inc(h);                 W_.x:= i;
                         W_.y:= j;               W_.z:= k;
                         LstF[h].Un:= Vunit(W_); LstF[h].Dc:= Rs_
                       END
                   END
             END
   END;

(*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

 Calculs relatifs au nouveau repŠre

HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*)

 PROCEDURE CalcRcRs(La, Ha: Z_32; VAR Rc_: Z_32; VAR Rs_: Reel);
   BEGIN
     IF (La<Ha) THEN Rc_:= La DIV 2
                ELSE Rc_:= Ha DIV 2;
     Rs_:= 0.340 * Rc_
   END;

 CONST LambdaDeg = 25.0; PhiDeg = 40.0;

 PROCEDURE Calc_U0123(VAR U_1, U_2, U_3: Ve3D);
   CONST DegRad = Pi / 180;
   VAR Clam, Cphi, Slam, Sphi: Reel; W: Ve3D;
   BEGIN
     SinCos(LambdaDeg * DegRad, Slam, Clam);
     SinCos(PhiDeg * DegRad, Sphi, Cphi);
     W.x:= -Sphi;         W.y:= Cphi;          W.z:= 0;    U_1:= W;
     W.x:= - Slam * Cphi; W.y:= - Slam * Sphi; W.z:= Clam; U_2:= W;
     W.x:= Clam * Cphi;   W.y:= Clam * Sphi;   W.z:= Slam; U_3:= W
   END;

(*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

 Programme principal

HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*)

 BEGIN
   Copie_F1;
   Calc_U0123(Vun1, Vun2, Vun3);
   CalcRcRs(Larg_Image, Haut_Image, Rcen, Rsph);
   CalcF(Rsph, LstF); AffF(LstF);
   Init_Lc(LstF, LstC);

   Calc_Mat_Im2(Larg_Image, Haut_Image, Rcen, Matrice_2);
   Creation_F2
 END.          

La fonction couleur se comporte pratiquement comme un générateur pseudo-aléatoire de pixels, la plus forte composante étant systématiquement portée à 255.

Dernière modification par Wiwaxia (07-04-2021 09:07:35)

Hors ligne

#31 07-04-2021 09:47:55

Bernard-maths
Membre
Lieu : 34790 Grabels
Inscription : 18-12-2020
Messages : 1 314

Re : La réduction des polyèdres convexes à l'intersection de demi-espaces

Bonjour !

c'est zoli même l A quand le ballon  de foot, le C60 ?

Bon, je vais continuer en tranches, et finalement en demi-espaces, ça va dans la logique de ma présentation !

Après on pourra généraliser aux autres polyèdres sympas ... ou non.

A plus, B-m



PS à Yoshi :salut !

Y-a-t-il un problème d'heure d'été ? Je viens de quitter, ça indique 9h47. Or j'ai 10h47 chez moi !!!

Je dois être plus à l'est que prévu ?

Salutations, B-m :)

Dernière modification par Bernard-maths (07-04-2021 09:51:01)


Ma philosophie est immuable : l'immobilisme tue ...
Les Anciens ont trouvé le plus facile ... il nous reste le plus dur !

Hors ligne

#32 07-04-2021 09:59:53

Wiwaxia
Membre
Lieu : Paris 75013
Inscription : 21-12-2017
Messages : 409

Re : La réduction des polyèdres convexes à l'intersection de demi-espaces

Je m'aperçois à la lecture de ton texte que ton calcul diffère en réalité très peu de celui mis en œuvre dans mon propre programme:

# Version initiale:
FUNCTION F_Polyedre(X1, Y1, Z1: Z_32): Reel;
   VAR j: Byte; p, q, r, s: Reel; W: Ve3D;
   BEGIN
     W:= CombLin3V(X1, Y1, Z1, Vun1, Vun2, Vun3);
     s:= 0;
     FOR j:= 1 TO Nface DO
       BEGIN
         p:= Pscal(LstF[j].Un, W); q:= p - LstF[j].Dc;
         r:= Abs(q);               IncR(s, q + r)
       END;
     Result:= s
   END;
# Traduction des fonctions proposées:
FUNCTION F_Polyedre(X1, Y1, Z1: Z_32): Reel;
   VAR j: Byte; p, q, r, s: Reel; W: Ve3D;
   BEGIN
     W:= CombLin3V(X1, Y1, Z1, Vun1, Vun2, Vun3);
     s:= 0;
     FOR j:= 1 TO Nface DO
       BEGIN
         p:= Pscal(LstF[j].Un, W); q:= p - LstF[j].Dc;
         r:= Abs(q);               IncR(s, r - LstF[j].Dc)
       END;
     Result:= s
   END;
la nouvelle version conduisant à une image identique:
KDhiSKIGJEx_Comparaison-des-2-t%C3%A9tra%C3%A8dres.png
Il y a donc lieu d'en être satisfait.

Je remarque seulement que tu n'utilises plus ici des "tranches" délimitées par 2 plans parallèles, mais comme moi des demi-espaces délimités par une frontière unique - en raison de l'absence de centre de symétrie.

Pour la molécule de fullerène, c'est plus lourd mais tout à fait envisageable; il suffit de rassembler les normales aux faces de l'icosaèdre et de son dual (le dodécaèdre).

Hors ligne

#33 07-04-2021 10:23:15

Bernard-maths
Membre
Lieu : 34790 Grabels
Inscription : 18-12-2020
Messages : 1 314

Re : La réduction des polyèdres convexes à l'intersection de demi-espaces

Re !

Effectivement, en exploitant la propriété du tétraèdre régulier, on n'utilise que 4 plans ... Ceci est du à "la formule de calcul du volume", applicable à "plein" de polyèdres, ça viendra plus tard ... avec des adaptations ...

La suite que je vais donner utilisera les tranches ... et comparaison ?

Fullerène, je ne me rappelais pas, j'avais fabriqué un patron de ballon foot pour mes 3ème en 2000 ...et lu qu'après coup, on s'était aperçu que ça correspondait à la molécule de carbone C60 pour ses 60 atomes, positionnés comme les sommets du ballon de foot !

@+

Dernière modification par Bernard-maths (07-04-2021 10:25:15)


Ma philosophie est immuable : l'immobilisme tue ...
Les Anciens ont trouvé le plus facile ... il nous reste le plus dur !

Hors ligne

#34 07-04-2021 11:31:23

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 943

Re : La réduction des polyèdres convexes à l'intersection de demi-espaces

Bonjour,

@Bernard-maths
Il vaut mieux être plus à l'est que plus "à l'ouest", non ?
Je suis allé voir comment les réglages de ton profil étaient définis.
La case "Ajustement pour l'heure d'été : cochez cette case si nécessaire pour que les forums affichent correctement l'heure." était cochée. Je l'ai décochée : ça devrait être bon
Ecris une réponse bidon, valide-là vérifie l'heure, puis supprime ta réponse : si l'heure était correcte, inutile de répondre à mon message...
N-B : chez moi, la case n'est pas cochée...

@+

[EDIT] Nan ! Aucun effet...
Chez moi, je n'étais pas sur le même fuseau horaire, donc je te passe sur le même, le temps que je comprenne à quoi joue cette fonctionnalité (à part avec mes nerfs)

[EDIT2] Je n'ai toujours pas compris, mais ce n'est pas une solution
Je vais rechanger le tout comme je viens de le faire pour moi : passage à un fuseau UTC +1 de base et cocher la fameuse case...

Dernière modification par yoshi (07-04-2021 14:04:18)


Arx Tarpeia Capitoli proxima...

Hors ligne

#35 07-04-2021 17:50:31

Wiwaxia
Membre
Lieu : Paris 75013
Inscription : 21-12-2017
Messages : 409

Re : La réduction des polyèdres convexes à l'intersection de demi-espaces

Bernard-maths a écrit :

... |x + y – z – a|+|x - y + z - a|+|x - y - z + a|+|x + y + z + a| = h √3 = 4a, et enfin :

|x + y – z – a|+|x - y + z - a|+|x - y - z + a|+|x + y + z + a| - 4a = 0.

Peut-on vérifier cette équation ? ...
De plus, on peut voir le nombre sZ s’afficher, et on peut constater que sZ = 0 lorsque Z est vert, et sZ > 0  lorsque Z est rouge !

En effet sZ est l’équation associée au tétraèdre plein :

sZ = abs(xZ + yZ - zZ - a) + abs(xZ - yZ + zZ - a) + abs(xZ - yZ - zZ + a) + abs(xZ + yZ + zZ + a) - 4a

On peut ainsi vérifier que l’équation trouvée pour le tétraèdre est une « bonne « équation » ! ...

En y regardant de près, je ne suis pas tout à fait convaincu par tes calculs - du moins par l'orientation que tu leur donnes.
Tu envisages la somme de quatre termes, impliquant chacun un produit scalaire particulier:
sZ (pour reprendre ta notation) = S1 + S2 + S3 + S4 , avec

S1 = |-x - y - z - a| - a = [P1 - a| - a ,
S2 = |-x + y + z - a| - a = [P2 - a| - a ,
S3 = |x - y + z - a| - a = [P3 - a| - a ,
S4 = [x + y - z - a| - a = [P4 - a| - a ,

et les normales aux faces dirigées vers l'extérieur du tétraèdre, donc opposées aux vecteurs position des sommets:

P1 = OM.N1 et N1 = (-1, -1, -1) ,
P2 = OM.N2 et N2 = (-1, +1, +1) ,
P3 = OM.N3 et N3 = (+1, -1, +1) ,
P4 = OM.N4 et N4 = (+1, +1, -1) ,

Jusques là, ça marche ... mais c'est ensuite qu'apparaissent les difficultés.

Chacun des 4 termes est en effet de la forme Sk = [pk - a| - a , ce qui donne:
# pour pk > a , donc suffisamment loin dans la direction de la normale (Nk) à la face considérée, et au delà du plan correspondant qui admet pour équation pk = a , il vient:

Sk = pk - 2a d'où Sk > -a ;

# pour pk < a , donc en-deça du plan précédent ou dans la direction opposée à la normale (si pk < 0), on a:

Sk = (a - pk) - a = - pk d'où Sk > -a .

Par conséquent l'équation sZ = 0 n'implique nullement que le point M(x, y, z) se trouve à l'intérieur du tétraèdre, ou sur l'une de ses faces.

Si l'on envisage par contre une autre somme un peu moins simple:

T = T1 + T2 + T3 + T4 , avec Tk = (pk - a) + |pk - a| ,

cette nouvelle grandeur présente un rapport étroit avec l'objet considéré; il vient en effet:
# pour pk > a : Tk = 2(pk - a) , ce qui implique: Tk > 0 ;
# pour pk ≤  a : Tk = (pk - a) + (a - pk) = 0 .
Les quatre termes n'étant jamais négatifs, leur somme (T) est par conséquent positive ou nulle,
et le cas limite T = 0 implique pour tout (k) Tk = 0 donc pk ≤  a : le point correspondant se trouve alors soit à l'intérieur du tétraèdre, soit sur la surface frontière - l'une des ses faces ou l'une de ses arêtes.

Tu as simplifié indûment l'équation sur laquelle tu travailles, et c'est par accident que je l'ai crue confirmée par mon algorithme: elle intervient en fait deux fois, notamment pour l'identification de la face du polyèdre, qui se révèle beaucoup plus délicate - je reviendrai plus tard sur le sujet.

Il te faut donc bien passer par mes calculs, plus compliqués que les tiens - l'expression de (T) ne fait que reprendre la propriété caractéristique de l'apothème, que tu as introduite en début de la discussion générale; la présence des valeurs absolues est partiellement liée au fait que la longueur d'un segment n'est jamais négative.

Dernière modification par Wiwaxia (07-04-2021 18:13:06)

Hors ligne

#36 07-04-2021 20:29:23

Bernard-maths
Membre
Lieu : 34790 Grabels
Inscription : 18-12-2020
Messages : 1 314

Re : La réduction des polyèdres convexes à l'intersection de demi-espaces

Bonsoir !

Voilà que je n'ai pas bien détaillé ? Il y a 3 méthodes, et nous ne parlons pas de la même !
Mais je devais détailler plus généralement (plus tard) ... une formule de calcul de volume !

Soit ABCD un tétraèdre quelconque. Il y a déjà 4 façons de calculer son triple volume : 3V = hA * (BCD) = hB * (ACD) = hC * (ABD) = hD * (ABC), avec (ABC) = Aire de ABC et hD = hauteur issue de D ...

Une 5ème manière consiste à prendre un point M à l'intérieur, qui se projette en H, I, J et K sur les faces (ou leur plan) opposées à A, B, C et D. Alors 3V = MH * (BCD) + MI * (ACD) + MJ * (ABD) + MK * (ABC).

Si on compare ces 5 formules, on peut s'arranger (... tout est négociable, que Diable !?), mais dans le cas du tétraèdre régulier, alors hA = hB = hC = hD = h ... et (ABC) = (ACD) = (ABD) = (BCD) !

Donc on peut en déduire que : MH + MI + MJ + MK = h. (Pour calculer ces distances, je n'ai besoin que de la formule connue pour la distance à 1 plan, et non de produit scalaire)

C'est cette relation particulière du tétraèdre régulier que j'utilise ! Elle ressemble "un peu, beaucoup ?" à celle que tu préconises des demi-espaces, comme je l'avais dit !

Dans mon exposé, c'est la a) que tu vois, moi c'est la c) que j'ai utilisée ...

Et en plus, pour vérifier que cette équation convient, je propose un montage géométrique. Il permet de voir la position variable d'un point Z par rapport au tétraèdre (rouge dehors, vert dedans), et indépendamment, on calcule l'équation du tétraèdre avec les coordonnées de Z. Et ça marche très bien.

Je me suis lancé à présenter 3 façons de trouver une équation de tétraèdre régulier, j'ai fait la 1ère (la c)), je ferai ensuite la 2ème (la b) des  tranches d'espace), et finalement la 3ème la a) des demi-espaces).

Ensuite, je pourrai généraliser à un tétraèdre quelconque, et finalement à tout polyèdre convexe ! (formule du volume adaptée)

Bonne soirée, Bernard-maths.

Dernière modification par Bernard-maths (07-04-2021 20:57:01)


Ma philosophie est immuable : l'immobilisme tue ...
Les Anciens ont trouvé le plus facile ... il nous reste le plus dur !

Hors ligne

#37 07-04-2021 23:13:00

Wiwaxia
Membre
Lieu : Paris 75013
Inscription : 21-12-2017
Messages : 409

Re : La réduction des polyèdres convexes à l'intersection de demi-espaces

Bonsoir,

On obtient un polyèdre tronqué en ajoutant une face plane d'orientation et de position arbitraires - ici

Un = (1/√29).(2, 3, 4) et Dc = 0.700.Rsph .

Le procédé est extensible aux équations non linéaires; la seconde image est celle du même tétraèdre amputé d'une sphère

de rayon  R = 1.700*Rsph , et centrée en (1.100*Rsph, 0.900*Rsph, 0.700*Rsph):
KDhv1U2NPwx_2-t%C3%A9tra%C3%A8dres-tronqu%C3%A9s.png

Il suffit dans ce dernier cas d'introduire la fonction supplémentaite:

F(x, y, z) = R2 - CM2 + |R2 - CM2| ,

nulle en-dehors de la sphére considérée (CM > R), et strictement positive à l'intérieur de celle-ci:


 CONST Cx = 1.100; Cy = 0.900; Cz = 0.700; Cr = 1.700;

 FUNCTION Sphere(x, y, z: Z_32; Rs_: Reel): Reel;
   VAR p, q, r, R2, s, X2, Xc, Y2, Yc, Z2, Zc: Reel;
   BEGIN
     Xc:= Cx * Rs_;      Yc:= Cy * Rs_;    Zc:= Cz * Rs_;
     X2:= Sqr(x - Xc);   Y2:= Sqr(y - Yc); Z2:= Sqr(z - Zc);
     R2:= Sqr(Cr * Rs_); p:= R2 - X2;      q:= Y2 + Z2;
     r:= p - q;          s:= Abs(r);       Result:= r + s
   END;          

Pour la coloration de cette surface courbe, un vecteur unitaire  unique lui a été attribué (Un5 = (1/OC).OC .

Dernière modification par Wiwaxia (09-04-2021 06:42:48)

Hors ligne

#38 20-04-2021 07:44:06

Bernard-maths
Membre
Lieu : 34790 Grabels
Inscription : 18-12-2020
Messages : 1 314

Re : La réduction des polyèdres convexes à l'intersection de demi-espaces

Bonjour à tous ! Et à Wiwaxia !

Je vous rappelle les discussions #28, #29 et #36, où je parlais des différentes approches pour une équation de tétraèdre régulier plein !

J'ai donc commencé par la méthode "équation du volume" en #29. Je vais ici, en #38, vous donner la méthode des "tranches d'espace".


Nous avons le même tétraèdre ABCD, et nous allons chercher les équations des 4 plans parallèles aux faces, et passant par les sommets opposés. Chaque paire de plans parallèles aura pour épaisseur la distance entre une face et le sommet opposé, c'est à dire la hauteur du tétraèdre h.

Nous avons les équations des 4 faces. BCD : x + y + z + a = 0; ABC : x + y – z – a = 0 ; ABD : x - y + z - a = 0  ; ACD : x - y - z + a = 0.

Il reste à établir les équations des 4 plans parallèles, chacun passant par le sommet opposé à la face … On obtient :

Pour BCD, soit pBCD’ // pBCD et passant par A(a,a,a). Donc x + y + z + cte = 0, avec a + a + a + cte = 0, cte = - 3a !

Donc pBCD’ : x + y + z – 3a = 0. De même, on trouve … pABC’ //pABC passant par D(-a,-a,a). pABC’ : x + y – z + 3a = 0.

Puis pABD’ : x  - y + z + 3a = 0. Et pACD’ : x – y – z – 3a = 0.

Voici une image des calculs :
KDuhbzAxNQf_T%C3%A9tra-r%C3%A9gulier-image-5-2021-04-20.jpg
Sur cette figure, on peut voir les 2 plans parallèles pABC et pABC’ passant par D. Le point M est entre ces 2 plans (mais quasiment sur le tétraèdre), et la perpendiculaire commune coupe les 2 plans en D1 et D’1, et on a  D1D’1 = DD’ = h = 4a √3/3 …

Il reste à établir une équation de ABCD plein. On va utiliser MD1 + MD’1 = h, 4 fois ! On sait calculer MD1 et MD’1 …

MD1 + MD’1 = |x+y-z+3a| √3/3 +|x+y-z-a| √3/3 = 4a √3/3 ; soit |x+y-z+3a| +|x+y-z-a| = 4a. Il reste à ajouter les 3 autres …

|x+y-z+3a|+|x+y-z-a|+|x-y-z+3a|+|x-y-z-a|+|x-y-z-3a|+|x-y-z+a|+|x+y+z-3a|+|x+y+z+a| = 16a !

Et voilà ! Alors, j'ai vérifié cette formule, en la programmant avec les coordonnées de Z dans la figure d'avant en #29. Et ça marche ...


Ensuite, on peut voir que l'équation comporte 8 formules de plans, c'est le prix à payer pour cette méthode !???

Voilà pour le moment, la suite vous fera voir la méthode des "demi-espaces"...

Ces 3 méthodes sont généralisables à un tétraèdre quelconque ... je verrai si je vous les donne ... :)

ET surtout, il y a les applications qu'on peut en faire ! Sinon ... juste une équation pleine, c'est pas forcément amusant ...


A bientôt, Bernard-maths

Dernière modification par Bernard-maths (20-04-2021 10:28:45)


Ma philosophie est immuable : l'immobilisme tue ...
Les Anciens ont trouvé le plus facile ... il nous reste le plus dur !

Hors ligne

#39 20-04-2021 10:30:30

Bernard-maths
Membre
Lieu : 34790 Grabels
Inscription : 18-12-2020
Messages : 1 314

Re : La réduction des polyèdres convexes à l'intersection de demi-espaces

Rebonjour, "bientôt" est là !

Voici maintenant la méthode des "demi-plans".

Par cette méthode, il faut avoir les équations des 4 faces, nous les avons, et il faut étudier les signes de ces expressions (de chaque côté de chaque plan), ce qui est assez facile !
Nous avons les équations des 4 faces. BCD : x + y + z + a = 0; ABC : x + y – z – a = 0 ; ABD : x - y + z - a = 0  ; ACD : x - y - z + a = 0.
Le point O est le centre de ABCD, donc le signe de son côté est donné par le terme constant …

Prenons pour commencer la face BCD à laquelle est associée l’expression fA(x,y,z) = x + y + z + a. En O, nous avons fA(0,0,0) = a > 0 …
Alors f’A(x,y,z) = |fA(x,y,z)| - fA(x,y,z) vaut 0 si on est du côté du point O, et -2 fA(x,y,z) > 0 de l’autre côté !

Donc f’A(x,y,z) est une expression positive ou nulle, mais jamais strictement négative.

Si par contre on prend fD(x,y,z) = x+y-z-a, en O on a : fD(0,0,0) = -a < 0 … Alors pour garder la même « structure de formule », je trouve plus simple de changer tous les signes, et de prendre fD(x,y,z) = -x-y+z+a !!!

En combinant les 4 expressions associées ainsi au tétraèdre, on en obtient une équation pleine ! Soit :

abs(|x+y+z+a|-(x+y+z+a))+abs(|-x-y+z+a|-(-x-y+z+a))+abs(|-x+y-z+a|-(-x+y-z+a))+abs(|x-y-z+a|-(x-y-z+a))= 0

Chaque parenthèse rouge est une expression positive ou nulle … si la somme est nulle, chaque parenthèse est nulle.

Equation vérifiée avec la figure de #29, c'est OK !!!

C'est cette méthode que Wiwaxia a suivie, à quelques nuances (?) près ... en #30 ...

Je vais voir pour la suite ... :-))

Bernard-maths.

PS : le 10-05-2021, j'ai rajouté les 4 abs, oubliés ...

Dernière modification par Bernard-maths (10-05-2021 17:27:28)


Ma philosophie est immuable : l'immobilisme tue ...
Les Anciens ont trouvé le plus facile ... il nous reste le plus dur !

Hors ligne

#40 04-05-2021 10:37:02

Bernard-maths
Membre
Lieu : 34790 Grabels
Inscription : 18-12-2020
Messages : 1 314

Re : La réduction des polyèdres convexes à l'intersection de demi-espaces

Bonjour à tous !

Cette discussion va se continuer par interventions diverses sur des équations de divers polyèdres non encore étudiés ...

Mais les échanges de cette discussion nous ont ouvert différentes variantes sur les formes des polyèdres ...

Et pour moi, cela concerne une autre approche sur des applications de ces équations de polyèdres pleins.

Pour cela, je vais ouvrir une nouvelle discussion : "Courbes et surfaces de niveaux, et troncatures"

Donc, à plus tard pour ici, et à tout de suite pour l'autre ... !

Bernard-maths

Dernière modification par Bernard-maths (04-05-2021 10:37:40)


Ma philosophie est immuable : l'immobilisme tue ...
Les Anciens ont trouvé le plus facile ... il nous reste le plus dur !

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
quatre-vingt sept plus soixante neuf
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums