Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Répondre
Résumé de la discussion (messages les plus récents en premier)
- Wiwaxia
- 07-04-2021 22:13:00
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):
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 .
- Bernard-maths
- 07-04-2021 19:29:23
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.
- Wiwaxia
- 07-04-2021 16:50:31
... |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.
- yoshi
- 07-04-2021 10:31:23
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...
- Bernard-maths
- 07-04-2021 09:23:15
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 !
@+
- Wiwaxia
- 07-04-2021 08:59:53
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:
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).
- Bernard-maths
- 07-04-2021 08:47:55
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 :)
- Wiwaxia
- 07-04-2021 07:52:53
Bonjour,
La perspective de tes schémas est bien rendue. Je tâcherai de revenir sur les équations.
... 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:
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° .
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.
- Bernard-maths
- 06-04-2021 16:49:39
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).
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.
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 …
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 » !
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
- Bernard-maths
- 05-04-2021 12:50:34
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
- Wiwaxia
- 05-04-2021 12:12:58
... 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
- Bernard-maths
- 05-04-2021 08:39:41
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
- Wiwaxia
- 05-04-2021 07:59:27
Un polyèdre inscriptible dans une surface du genre précédemment décrit s'obtient en 3 étapes de duplication, accompagnées du raccordement des faces triangulaires mutuellement placées en regard.
En partant d'un tétraèdre (S0, F0, A0) = (4, 4, 6), la jonction des sommets de deux triangles par des segments parallèles:
a) double le nombre de sommets du fait de la reproduction de la structure précédente: Sn = 2 * Sn - 1 ;
b) introduit une face supplémentaire pour toute paire de triangles associés en raison du remplacement des deux faces concernées par 3 faces quadrangulaires (trapèzes, éventuellement rectangles): Fn = (2 * Fn - 1) + 2n - 1 ;
c) fait apparaître 3 arêtes supplémentaires pour chaque paire de triangles, d'où: An = 2 * An - 1 3 3 * 2n - 1 .
On voit ainsi apparaître:
(S1, F1, A1, X1) = (8, 9, 15, 2) - polyèdre ordinaire, de genre nul;
(S2, F2, A2, X2) = (16, 20, 36, 0) - polyèdre torique de genre 1;
(S3, F3, A3, X3) = (32, 44, 84, -8) - présentant la structure d'un cube.
PS: Erreur rectifiée.
- Wiwaxia
- 05-04-2021 07:09:51
Bonjour,
La déformation de la surface apparentée au cube (a = 0) en tronc de pyramide permet de vérifier la présence de 5 trous dans la surface fermée, conformément au schéma mis en lien par Roro.
Il s'agit bien d'une surface fermée de genre égal à 5:
- Roro
- 04-04-2021 20:35:52
Re-bonsoir,
Une idée sur le calcul du nombre de trous : ici
Pour le cas simple de l'aquarium (avec des bords "épais" sinon je ne sais pas ce que signifie "trou"), on peut le déformer continument en un morceau de plan. D'ailleurs, s'il y avait un trou, on ne pourrait pas mettre de l'eau dedans !
Roro.