Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#76 31-01-2021 13:00:12
- Bernard-maths
- Membre
- Inscription : 18-12-2020
- Messages : 123
Re : Des équations et des cubes
Bonjour à tous !
Je pense que tu cherches un moyen de projeter sur un plan une figure 3D ...
J'ai rencontré ce problème quand GeoGebra n'était pas encore en 3D, en 2003 pour mes terminales S.
J'ai supposé qu'on projetait la figure sur le plan (yOz), me semble-t-il, et j'utilisais des formules, à retrouver !
Donc la figure pouvait pivoter, et on affichait sa projection. J'ai utilisé ça avec GeoGebra 2D, et même (en 2003), avec Excel dans son module grapheur 3D ! Je pouvais même profiter de la gestion d'un curseur pour animer la figure.
Désolé, il faut que je retrouve les équations ... et ces lointaines figures !
Cordialement, Bernardmaths
Dernière modification par Bernard-maths (31-01-2021 13:02:20)
Hors ligne
#77 06-02-2021 12:13:54
- Wiwaxia
- Membre
- Lieu : Paris 75013
- Inscription : 21-12-2017
- Messages : 204
Re : Des équations et des cubes
Bonjour,
Je suis parvenu à mettre sur pied l'algorithme mettant en œuvre les notions précédentes, après une période chargée.
Je remercie Bernard-maths pour l'initiation de cette discussion, et les idées originales qu'il y a développées, qui m'ont permis d'envisager une nouvelle représentation des surfaces polyédriques
J'ai commencé très modestement par un cube, parce qu'il fallait boucler un programme assez lourd, et le purger de tous les bogues présents.
Le rhombicuboctaèdre présente un intérêt particulier en raison de la présence de 3 sortes de faces d'orientations remarquables; elles sont en effet normales
- soit aux axes du repère (axes quaternaires),
- soit à ses bissectrices (axes binaires),
- soit enfin aux axes ternaires (dans le cas des faces triangulaires).
https://fr.wikipedia.org/wiki/Petit_rho … a%C3%A8dre
https://mathcurve.com/polyedres/rhombic … edre.shtml
Les deux objets sont vus sous des perspectives voisines:
latitude (λ) = 10° , longitude (φ) = 20° puis 25° .
Il faut reprendre la définition des couleurs, ici arbitrairement reliées à l'orientation des normales aux faces dans le repère mobile (C, u1, u2, u3).
Dernière modification par Wiwaxia (06-02-2021 12:27:38)
Hors ligne
#78 06-02-2021 20:56:55
- Bernard-maths
- Membre
- Inscription : 18-12-2020
- Messages : 123
Re : Des équations et des cubes
Hello !
Ca rend bien, mais je vois que c'est lourd en programmation !
Perso, je viens de rééditer le cube tronqué, que j'avais dessiné il y a bien longtemps, GeoGebra 3D n'était pas là ...
Mais je n'ai pensé aux équations qu'il y a 3 ans, et en mars, pour les journées de Maths en scène, je vais le proposer en animation, ou en démonstration pour des terminales S ou post-bac ...
L'équation part du cube plein, et va vers l'octaèdre dual, équation valable pour toutes les figures intermédiaires.
Je vais tacher de le mettre en ligne cette semaine.
J'ai aussi commencé avec le tétraèdre et l'octaèdre, en choisissant bien leurs positions pour faciliter les démonstrations.
Bonne suite, Bernard-maths.
Dernière modification par Bernard-maths (06-02-2021 20:59:40)
Hors ligne
#79 07-02-2021 05:09:22
- Daniel sevenou mahutondji
- Membre
- Inscription : 07-02-2021
- Messages : 1
Re : Des équations et des cubes
Bonjour,svp pour faire la dérivée partielle d'une fonction a plus de deux variables je sur posse que j'ai trois variables x,y,z où dans un premier instant je dérive x par rapport aux autres ,s'il était au carré que puis je faire pour eux merci
Hors ligne
#80 07-02-2021 07:29:10
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 15 628
Re : Des équations et des cubes
Bonjour Daniel,
N'as-tu pas vu que le nom de ce sous-forum était Le Coin des beaux problèmes de Géométrie ?
N'as-tu pas vu ce lien : Nouvelle discussion sur lequel tu aurais dû cliquer pour ouvrir TA propre discussion, choisir un titre clair et précis et y copier ta question.
Problème de vue ? Solution : consulter un ophtalmologue.
En effet, en quoi ta question, est-elle une réponse au sujet en cours ?
En rien, aucun rapport !...
Alors ?
Méconnaissance du sens du verbe Répondre ? Solution : consulter un dictionnaire.
Même si tu parasites ce sujet, je ne peux pas le fermer et gêner Wiwaxia et Bernard-maths, mais je veillerai à ce que tu n'aies pas de réponse...
Ne perds pas de temps, demain, je supprimerai ton message et le mien.*
Un dernier point.
Je t'invite à réfléchir à ce passage de nos Règles :
* Notre but étant de vous aider à résoudre vos difficultés, et non de faire les exercices à votre place, ne postez pas le sujet d'un exercice sans montrer que vous y avez travaillé : il n'y serait probablement pas répondu. A vous d'expliquer ce que vous avez déjà fait, là où vous bloquez, et pourquoi...
T'aider oui, faire le boulot à ta place, non.
Merci de ta compréhension.
Yoshi
- Modérateur -
Arx Tarpeia Capitoli proxima...
Hors ligne
#81 11-02-2021 13:43:29
- Wiwaxia
- Membre
- Lieu : Paris 75013
- Inscription : 21-12-2017
- Messages : 204
Re : Des équations et des cubes
Bonjour,
Voici le programme source réalisant la mise en perspective du polyèdre à 26 faces:
PROGRAM Polyedre;
(*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
Représentation en perpective des faces d'un polyèdre
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*)
USES Crt, E_Texte, U_Copie_1F, Math, U_Math;
CONST N_Face = 26; Nf2 = N_Face DIV 2; // Nf2 = 13
TYPE Ve3D = RECORD x, y, z: Reel END;
Fxyz = FUNCTION(h, x, y, z: Reel): Reel;
Tab_Fxyz = ARRAY[1..N_Face] OF Fxyz;
Tab_Nf = ARRAY[1..Nf2] OF Ve3D;
Tab_Px = ARRAY[1..Nf2] OF Pixel;
VAR Vun1, Vun2, Vun3: Ve3D;
LstF: Tab_Fxyz;
LstN: Tab_Nf;
LstC: Tab_Px;
(*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
Equations des faces de polyèdre
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*)
FUNCTION F13(h, x, y, z: Reel): Reel;
VAR p, q, r, s: Reel;
BEGIN
r:= h - z; s:= x + y; p:= Abs(r + s);
r:= h + z; q:= Abs(r - s);
r:= p + q; s:= 2 * h;
Result:= r - s
END;
FUNCTION F12(h, x, y, z: Reel): Reel;
VAR p, q, r, s: Reel;
BEGIN
r:= h - y; s:= z + x; p:= Abs(r + s);
r:= h + y; q:= Abs(r - s);
r:= p + q; s:= 2 * h;
Result:= r - s
END;
FUNCTION F11(h, x, y, z: Reel): Reel;
VAR p, q, r, s: Reel;
BEGIN
r:= h - x; s:= y + z; p:= Abs(r + s);
r:= h + x; q:= Abs(r - s);
r:= p + q; s:= 2 * h;
Result:= r - s
END;
FUNCTION F10(h, x, y, z: Reel): Reel;
VAR p, q, r, s: Reel;
BEGIN
r:= h - x; s:= y + z; p:= Abs(r - s);
r:= h + x; q:= Abs(r + s);
r:= p + q; s:= 2 * h;
Result:= r - s
END;
FUNCTION F9(h, x, y, z: Reel): Reel;
VAR p, q, r, s: Reel;
BEGIN
s:= z - x; p:= Abs(h - s); q:= Abs(h + s);
r:= p + q; s:= 2 * h; Result:= r - s
END;
FUNCTION F8(h, x, y, z: Reel): Reel;
VAR p, q, r, s: Reel;
BEGIN
s:= z + x; p:= Abs(h - s); q:= Abs(h + s);
r:= p + q; s:= 2 * h; Result:= r - s
END;
FUNCTION F7(h, x, y, z: Reel): Reel;
VAR p, q, r, s: Reel;
BEGIN
s:= y - z; p:= Abs(h - s); q:= Abs(h + s);
r:= p + q; s:= 2 * h; Result:= r - s
END;
FUNCTION F6(h, x, y, z: Reel): Reel;
VAR p, q, r, s: Reel;
BEGIN
s:= y + z; p:= Abs(h - s); q:= Abs(h + s);
r:= p + q; s:= 2 * h; Result:= r - s
END;
FUNCTION F5(h, x, y, z: Reel): Reel;
VAR p, q, r, s: Reel;
BEGIN
s:= x - y; p:= Abs(h - s); q:= Abs(h + s);
r:= p + q; s:= 2 * h; Result:= r - s
END;
FUNCTION F4(h, x, y, z: Reel): Reel;
VAR p, q, r, s: Reel;
BEGIN
s:= x + y; p:= Abs(h - s); q:= Abs(h + s);
r:= p + q; s:= 2 * h; Result:= r - s
END;
FUNCTION F3(h, x, y, z: Reel): Reel;
VAR p, q, r, s: Reel;
BEGIN
p:= Abs(h - z); q:= Abs(h + z);
r:= p + q; s:= 2 * h;
Result:= r - s
END;
FUNCTION F2(h, x, y, z: Reel): Reel;
VAR p, q, r, s: Reel;
BEGIN
p:= Abs(h - y); q:= Abs(h + y);
r:= p + q; s:= 2 * h;
Result:= r - s
END;
FUNCTION F1(h, x, y, z: Reel): Reel;
VAR p, q, r, s: Reel;
BEGIN
p:= Abs(h - x); q:= Abs(h + x);
r:= p + q; s:= 2 * h;
Result:= r - s
END;
PROCEDURE InitF(VAR L_F: Tab_Fxyz);
BEGIN
L_F[ 1]:= F1; L_F[ 2]:= F2; L_F[ 3]:= F3;
L_F[ 4]:= F4; L_F[ 5]:= F5; L_F[ 6]:= F6;
L_F[ 7]:= F7; L_F[ 8]:= F8; L_F[ 9]:= F9;
L_F[10]:= F10; L_F[11]:= F11; L_F[12]:= F12; L_F[13]:= F13;
END;
(*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
Initialisation des fonctions
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 F_Face(A1, B1, X1, Y1, Z1: Z_32): Byte;
CONST Seuil = 1E-10;
VAR j, Jf: Byte; A2, A3: Z_32; r: Reel; W: Ve3D;
BEGIN
W:= CombLin3V(X1, Y1, Z1 + 1, Vun1, Vun2, Vun3);
Jf:= 0; A2:= A1 + B1; A3:= A2 + B1;
FOR j:= 1 TO 3 DO BEGIN
r:= LstF[j](A1, W.x, W.y, W.z);
IF (r>Seuil) THEN Jf:= j
END;
FOR j:= 4 TO 9 DO BEGIN
r:= LstF[j](A2, W.x, W.y, W.z);
IF (r>Seuil) THEN Jf:= j
END;
FOR j:= 10 TO Nf2 DO BEGIN
r:= LstF[j](A3, W.x, W.y, W.z);
IF (r>Seuil) THEN Jf:= j
END;
Result:= Jf
END;
FUNCTION F_Polyedre(A1, B1, X1, Y1, Z1: Z_32): Reel;
VAR j: Byte; A2, A3: Z_32; s: Reel; W: Ve3D;
BEGIN
W:= CombLin3V(X1, Y1, Z1, Vun1, Vun2, Vun3);
s:= 0; A2:= A1 + B1; A3:= A2 + B1;
FOR j:= 1 TO 3 DO IncR(s, LstF[j](A1, W.x, W.y, W.z));
FOR j:= 4 TO 9 DO IncR(s, LstF[j](A2, W.x, W.y, W.z));
FOR j:= 10 TO Nf2 DO IncR(s, LstF[j](A3, W.x, W.y, W.z));
Result:= s
END;
PROCEDURE Calc_Mat_Im2(La, Ha: Z_32; VAR Ma2: Tab_Pix);
CONST Seuil = 1E-10; P000: Pixel = (0, 0, 0);
VAR Icoul: Byte;
Apol,Bpol, Rcen, Xcen, Ximg, Xm, Ycen, Yimg, Ym, Zimg, Zmin: Z_32;
u: Reel; Px: Pixel;
BEGIN
Xcen:= La DIV 2; Ycen:= Ha DIV 2;
IF (La<Ha) THEN Rcen:= Xcen
ELSE Rcen:= Ycen;
Zmin:= -2 * Rcen;
Apol:= Round(0.8628 * Rcen); Bpol:= Round(0.3574 * Rcen);
FOR Xm:= 0 TO (La - 1) DO
BEGIN
Ximg:= Xm - Xcen;
FOR Ym:= 0 TO (Ha - 1) DO
BEGIN
Yimg:= Ym - Ycen; Zimg:= 0; We(10, 40, Xm, 6);
REPEAT
Dec(Zimg);
u:= F_Polyedre(Apol, Bpol, Ximg, Yimg, Zimg + Rcen)
UNTIL ((u<Seuil) OR (Zimg=Zmin));
IF (Zimg=Zmin) THEN Px:= P000
ELSE BEGIN
Icoul:= F_Face(Apol, Bpol, Ximg, Yimg,
Zimg + Rcen);
Px:= LstC[Icoul]
END;
Ma2[Xm,Ym]:= Px
END
END
END;
(*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
Détermination de la couleur des faces en fonction de leur orientation
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*)
FUNCTION Pscal(W1, W2: Ve3D): Reel;
VAR p: Reel;
BEGIN
p:= W1.x * W2.x; IncR(p, W1.y * W2.y);
IncR(p, W1.z * W2.z); Result:= p
END;
PROCEDURE InitC(VAR L_C: Tab_Px);
CONST M1 = 240; M2 = 255.449;
VAR j, k: Byte; m, p, q, r, s, u, v, w: Reel; Px: Pixel;
BEGIN
FOR j:= 1 TO Nf2 DO
BEGIN
p:= Pscal(LstN[j], Vun1); u:= 1 + p;
q:= Pscal(LstN[j], Vun2); v:= 1 + q;
r:= Pscal(LstN[j], Vun3); w:= 1 + r;
IF (u>v) THEN m:= u ELSE m:= v; IF (m<w) THEN m:= w;
IF (p<0) OR ((q<0) OR (r<0)) THEN s:= M1 / m
ELSE s:= M2 / m;
Px[1]:= Round(u * s); Px[2]:= Round(v * s);
Px[3]:= Round(w * s); L_C[j]:= Px
END
END;
PROCEDURE InitN(VAR L_N: Tab_Nf);
CONST g = 0.707106781187; // g = Rac(1/2)
h = 0.577350269190; // h = Rac(1/3)
Nf: Tab_Nf = ((x:1; y:0; z:0),
(x:0; y:1; z:0),
(x:0; y:0; z:1),
(x: g; y: g; z: 0), (x:-g; y: g; z: 0),
(x: 0; y: g; z: g), (x: 0; y:-g; z: g),
(x: g; y: 0; z: g), (x: g; y: 0; z:-g),
(x: h; y: h; z: h), (x:-h; y: h; z: h),
(x: h; y:-h; z: h), (x: h; y: h; z:-h));
BEGIN
L_N:= Nf
END;
(*HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
Orientation spatiale du nouveau repère
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH*)
CONST LambdaDeg = 10.0; PhiDeg = 25.0;
PROCEDURE Calc_U123(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_U123(Vun1, Vun2, Vun3);
InitF(LstF);
InitN(LstN);
InitC(LstC);
Calc_Mat_Im2(Larg_Image, Haut_Image, Matrice_2);
Creation_F2
END.
J'ai perdu beaucoup de temps dans la recherche de la meilleure (?) fonction retournant la couleur des faces en fonction de l'orientation de leur norme; il faut préserver les contrastes ainsi qu'un minimum de luminosité, mais c'est à la limite affaire de choix personnel.
Voici ce que l'on obtient pour diverses valeurs de la constante (M1) présente dans la procédure InitC(...):
M1 = 130, 160, 180, 200, 220, 240
Dernière modification par Wiwaxia (11-02-2021 19:47:53)
Hors ligne
#82 12-02-2021 08:29:21
- Wiwaxia
- Membre
- Lieu : Paris 75013
- Inscription : 21-12-2017
- Messages : 204
Re : Des équations et des cubes
La proportion des faces sombres peut être modulée par l'intervention d'un critère beaucoup moins restrictif, en comparant la somme des 3 produits scalaires (S = p + q + r) à un seuil (Slim) dont on peut choisir la valeur.
PROCEDURE InitC(VAR L_C: Tab_Px);
CONST M1 = 50; M2 = 255.449; Slim = -0.100;
VAR j, k: Byte; m, p, q, r, s, t, u, v, w: Reel; Px: Pixel;
BEGIN
FOR j:= 1 TO Nf2 DO
BEGIN
p:= Pscal(LstN[j], Vun1); u:= 1 + p;
q:= Pscal(LstN[j], Vun2); v:= 1 + q;
r:= Pscal(LstN[j], Vun3); w:= 1 + r;
IF (u>v) THEN m:= u ELSE m:= v; IF (m<w) THEN m:= w;
s:= p + q; IncR(s, r);
IF (s<Slim) THEN t:= M1 / m
ELSE t:= M2 / m;
Px[1]:= Round(t * u); Px[2]:= Round(t * v);
Px[3]:= Round(t * w); L_C[j]:= Px
END
END;
Voici ce que l'on obtient en prenant M1 = 50 (afin que l'assombrissement soit marqué), et pour
M1 = -0.100, 0.000, 0.200, 0.300, 0.400, 0.700
J'avoue ne pas expliquer la persistance de la face claire, en bas à gauche; la représentation d'une sphère montrerait beaucoup mieux la répartition de l'éclairement.
Hors ligne
#83 12-02-2021 18:11:03
- Bernard-maths
- Membre
- Inscription : 18-12-2020
- Messages : 123
Re : Des équations et des cubes
Bonsoir Wiwaxia !
Lorsque je voulais représenter, justement cet objet, pour ne pas tracer les faces cachées, j'utilisai le produit scalaire d'un vecteur "de vue" avec les vecteurs normaux des faces. Lorsqu'il devenait >0, ou <0, selon sens du vecteur de vue, alors plus visible ...
Il me semble que pour l'intensité des couleurs, ça devrait fonctionner pareil : atténuation de l'intensité "proportionnelle" au produit scalaire ?
Avec modulation "entre 2 seuils" ajustables : très lumineux, peu lumineux ...
Mais cela dépend peut-être aussi de la définition des couleurs : mélanges de couleurs primaires ? Ou couleurs d'une palette ?
Ensuite ... dans ta présentation, je pense que tu traites les faces les unes après les autres, pas ensemble.
Alors la face jaune ? Et avec une sphère, pas facile je crois, il y a une infinité de facettes ...
Autre chose, le fait d'utiliser un vecteur "de vue", cela permet de changer la direction de venue de la lumière, et même d'envisager plusieurs sources différentes ! Ou de faire "tourner" l'objet ?
Voilà de quoi t'agiter les neurones ... bonne suite.
Et bonne soirée, Bernard-maths
Dernière modification par Bernard-maths (12-02-2021 18:17:32)
Hors ligne
#84 13-02-2021 09:28:54
- Wiwaxia
- Membre
- Lieu : Paris 75013
- Inscription : 21-12-2017
- Messages : 204
Re : Des équations et des cubes
Bonjour Bernard-maths,
Tu soulèves plusieurs questions relevant de la représentation des objets tridimensionnels.
... Lorsque je voulais représenter, justement cet objet, pour ne pas tracer les faces cachées, j'utilisai le produit scalaire d'un vecteur "de vue" avec les vecteurs normaux des faces. Lorsqu'il devenait >0, ou <0, selon sens du vecteur de vue, alors plus visible ...
C'est juste, mais ton critère n'intervient que lorsque l'on entreprend de ne représenter que les arêtes du polyèdre; si (Ni, Nj) désignent les normales aux faces adjacentes à l'arête considérée, le critère de visibilité de cette dernière est la vérification par les deux produits scalaires de la condition:
(Ni.OC) ≥ 0 OU (Nj.OC) ≥ 0 .
On a alors le choix entre une représentation "opaque", excluant le tracé des arêtes situées à l'arrière de l'objet, ou une représentation transparente ou semi-transparente liant le tracé des arêtes à la profondeur de leur milieu, donnée par le produit scalaire:
zkl = (OC.OIkl) = (1/2)(OC.(OAk + OAl)) ;
l'algorithme est dans ce cas relativement simple, et riche en diverses options.
L'avantage considérable du procédé que tu as initialement introduit est justement de dispenser le programmeur de l'identification et de l'inventaire les arêtes; il suffit alors de connaître l'orientation des normales aux faces, et les distances les séparant du centre.
De plus la détection de la face visible consiste à repérer l'endroit où la fonction caractéristique du polyèdre s'annule pour la première fois: ce qu'il peut y avoir derrière est alors dépourvu d'importance.
... Autre chose, le fait d'utiliser un vecteur "de vue", cela permet de changer la direction de venue de la lumière, et même d'envisager plusieurs sources différentes ! Ou de faire "tourner" l'objet ? ...
Tu as parfaitement raison sur ce point: je m'en suis résolument tenu à un polyèdre fixe dans le repère absolu (Oxyz), et à une perspzective à deux variables (λ, φ) définissant la position (C) de l'observateur et l'orientation du plan de l'image (u1, u2).
L'introduction des 3 produits scalaires dans la procédure de définition des couleurs InitC(...)
p:= Pscal(LstN[j], Vun1); u:= 1 + p;
q:= Pscal(LstN[j], Vun2); v:= 1 + q;
r:= Pscal(LstN[j], Vun3); w:= 1 + r;
... / ...
Px[1]:= Round(t * u); Px[2]:= Round(t * v);
Px[3]:= Round(t * w);
revient sommairement à considérer 3 projecteurs rouge, vert et bleu respectivement orientés selon les 3 directions (u1, u2, u3) du repère mobile.
J'aurais pu en effet envisager une ou plusieurs directions d'éclairage, distinctes de celle de la perspective, et simulant les effets physiques de diffusion et de réflexion de la lumière; mais l'on n'arrive à rien en abordant de front plusieurs problèmes difficiles, et le problème de géométrie analytique que tu as amené suffisait amplement.
La priorité revient à l'obtention d'un contraste satisfaisant au niveau des teintes et de la luminosité, afin de faire ressortir l'impression de profondeur.
... Alors la face jaune ? Et avec une sphère, pas facile je crois, il y a une infinité de facettes ...
Très simple au contraire, dans la mesure chaque point correspond à une face élémentaire d'orientation orthoradiale:
N(M) = (1/OM).OM .
La sphère permettrait de tester la qualité de l'éclairage, que je ne maîtrise pas très bien.
Hors ligne
#85 14-02-2021 08:14:17
- Bernard-maths
- Membre
- Inscription : 18-12-2020
- Messages : 123
Re : Des équations et des cubes
Salut Wiwaxia !
Bon, moi j'utilise GeoGebra, et quand je trace l'objet, ce sont des triangles ou quadrilatères qui sont tracés, selon leurs sommets, qui eux ont été "tournés". Alors la couleur est attribuée à la face, et je n'ai pas à la gérer.
Par contre je pourrais gérer l'intensité de la couleur, en jouant sur les 3 primaires et leurs intensités ...
Je te laisse continuer tes programmes, c'est toujours passionnant, mais je ne me suis pas encore remis à Pascal ...
A plus donc, Bernard-maths
Hors ligne
#86 17-02-2021 12:51:18
- Bernard-maths
- Membre
- Inscription : 18-12-2020
- Messages : 123
Re : Des équations et des cubes
Bonjour à tous !
Je vous ai promis un document expliquant comment générer un cube tronqué, et les équations associées ...
Alors voilà :
Avertissement : je reprends ici un document écrit en 2018, issu de mes expériences des années antérieures. J’applique ici une méthode de génération d’équations de polyèdres à partir d’un polyèdre donné, méthode qui consiste à tronquer le polyèdre de départ. Tous les polyèdres intermédiaires ont ainsi une équation « de surface », donc habituelle ...
Méthode : cette méthode consiste à partir d’une équation du polyèdre de départ considéré comme plein. C’est dire que cette équation concerne les points de la surface polyédrique, mais aussi de tout point intérieur !
Cette équation est de la forme S(d1,d2,d3,d4,d5,d6) = k > 0. C'est-à-dire, ici, Somme de 6 distances = un nombre k, (strictement) positif. On peut alors se poser la question : « mais où sont donc les points de l’espace (ici) qui seraient tels que S = k + d, d ≥ 0 ? ». La réponse donne une « surface de niveau d », comme je l’appelle.
Application : ici, le polyèdre de départ est un cube ABCDEFGH, dont les sommets ont pour coordonnées (±s ; ±s ; ±s).
Voir les différentes figures … La méthode ensuite fait glisser les sommets vers les milieux des 6 faces du cube de départ. Alors les faces rétrécissent en carrés, pour finir en 6 points, les centres des 6 faces. On a l’octaèdre dual du cube …
Ici s = 1, et le paramètre c, variant de 0 à s, permet de déplacer les sommets sur les faces, par exemple A se répartit en A1, A2 et A3 … MAIS on génère aussi des points intérieurs au cube A’, B’, C’ … H’. Ce qui donne un cube intérieur, homothétique de ABCDEFGH, dans le rapport (s-c)/s.
C’est de ce cube A’B’C’D’E’F’G’H’, qu’on va prendre une « équation pleine », puis générer une surface de niveau, dont les faces carrées (par 6 translations) seront les carrés intérieurs des 6 faces du cube ABCDEFGH !
Equation du cube plein :
Etant situé dans le cube, vous constatez que la distance entre 2 faces opposées est constante, égale au côté (arête). Entre les 3 paires de faces opposées, la somme des 6 distances vaut alors 3 côtés, donc ici : 3 (s+s) = 6s pour le cube ABCDEFGH, mais aussi : 3((s-c)+(s-c)) = 6(s-c).
Remarques :
Cette présentation n’est qu’un aspect de la « montagne de glace » (iceberg) qui se cache derrière ce type d’équation …
Non seulement la génération de polyèdres, mais aussi des arrondis sont possibles, ainsi que pour d’autres volumes …
La suite vous présente le document original de 2018 …
V est un curseur qui permet de voir tout ou partie de la figure, à tester !
Les 2 liens cjoint sont :
https://cjoint.com/c/KBrmHdGakNV
https://cjoint.com/c/KBrmMCT1BYV
Cordialement, bernard-maths
PS : je remarque qu'il y a une erreur sur les variations de c, non pas de 0 à s, MAIS de s à 0 !
Je vous laisse rectifier, eh eh ... (c-s) devient c ...
Dernière modification par Bernard-maths (17-02-2021 16:56:37)
Hors ligne
#87 19-02-2021 13:00:19
- Bernard-maths
- Membre
- Inscription : 18-12-2020
- Messages : 123
Re : Des équations et des cubes
Hello !
Merci de me dire ce que vous pensez du dernier document !
Bernard-maths
Hors ligne
#88 23-02-2021 07:22:34
- Wiwaxia
- Membre
- Lieu : Paris 75013
- Inscription : 21-12-2017
- Messages : 204
Re : Des équations et des cubes
Bonjour Bernard-maths,
... Merci de me dire ce que vous pensez du dernier document ...
Question très prosaïque: faut-il installer Geogobra ou l'une de ses applications pour ouvrir le fichier ggb, et dans l'affirmative laquelle ? Déjà il ne m'a pas été possible de consulter un précédent document au même format. Merci pour l'info.
Cordialement,
Wiwaxia.
Hors ligne
#89 23-02-2021 12:03:11
- Bernard-maths
- Membre
- Inscription : 18-12-2020
- Messages : 123
Re : Des équations et des cubes
Hello !
Personnellement j'ai installé GeoGebra sur mon ordi ... donc quand je clique sur le lien ci-dessous, je télécharge un fichier, qui se retrouve dans la barre des chargements, en bas (pour moi).
Si je clique sue le fichier chargé, il s'ouvre dans GeoGebra ...
Mais je ne sais pas ce qu'il se passe sur un ordi SANS GeoGebra !
Je vais essayer avec un ordi sans GeoGebra (si je peux !) ...
https://cjoint.com/doc/21_02/KBrmMCT1BY … -06-11.ggb
B-m.
BON ! Je viens d'essayer, et ça me demande avec quelle application ?
DONC il faut installer GeoGebra sur ton ordi, avant d'ouvrir le fichier chargé !!!
ALORS, pour des raisons d'interface, et côté pratique aussi, je préfère installer GeoGebra version 5, et non pas les suivantes !!!
Donc sur Google, je tape geogebra 5
on me propose :
https://www.google.fr/url?sa=t&rct=j&q= … uHCC3m0rui
Et j'ai un tableau de choix ; à droite en bas je choisis : GeoGebra Classique 5
GeoGebra gratuit et tout en un : géométrie, tableur, statistiques, calcul formel
Bon courage ... @ +
Dernière modification par Bernard-maths (23-02-2021 12:47:22)
Hors ligne