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).

Répondre

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)?
cinquante huit plus quatre-vingt quatorze
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.

Retour

Résumé de la discussion (messages les plus récents en premier)

Blubber
19-05-2023 15:49:17

Bonjour Bernard-maths.

Ces dernières semaines j'ai surtout bossé les exams (auxquels je n'accepterai pas moins de 19/20 x')) mais tout en continuant d'avancer sur le présent sujet.

Je suis en train d'essayer de mettre en forme tout ceci afin d'avoir une sorte le library simple et facilement utilisable ; bien que très limitée. En effet, je ne cherche pas à faire un monstre adapté à toutes les situations mais bien un petit helper répondant juste à mon use-case. Sache que tes programmes GeoGebra m'ont été d'un grand secours aussi bien pour visualiser correctement la chose que pour voir comment appliquer les formules.

Enfin, lorsque j'aurais réussi à rendre le tout suffisamment bien à mon gout, je mettrai tout ceci en accès libre des fois que cela en intéresse certains.

Bernard-maths
19-05-2023 10:52:47

Bonjour à tous !

Alors Blubber, où en es tu ?

Un petit coup d'oeil sur Wiki ? https://fr.wikipedia.org/wiki/Matrice_de_rotation
B-m

Bernard-maths
22-04-2023 16:58:21

Bonjour !

Pas pressé ... cool donc, mais moi je cogite, ça me distrait ...

Donc je repense à la méthode employée, et je pense à un truc du genre : pour une figure "centrée" en O origine du repère, 1ère rotation autour de (x'x) pour "l'inclinaison", 2ème rotation autour de (z'z) pour faire tourner ...

Ensuite projection sur le plan (yOz), puis pour avoir l'image dans un repère 2D en x y, on fait tourner les coordonnées de la projection, z devient y, et y devient x, tour de magie terminé !

Mais il y a d'autres variantes ... Voilà pour l'organisation.


Petite remarque sur GeoGebra : je travaille avec GeoGebra Classique 5, et non 6 ! L'environnement est plus simple, question de goût ...

Lors de l'ouverture du lien, c'est le 6 qui est chargé ! Si tu veux le 5, tu peux le télécharger (en bas) sur https://www.geogebra.org/download

Celui-ci n'est pas "lançable", dommage.

Bernard-maths

Blubber
22-04-2023 13:07:02

Ne te presse pas Bernard-maths, car moi je ne suis pas pressé ! :)

Pour tout te dire, à vouloir y aller directement avec trois axes je me suis perdu en chemin. Ainsi je pense qu'y aller incrémentalement et commencer par deux axes afin de déjà réaliser cette projection sur ceux-ci serait un grand bon en avant : d'une part j'arriverais à mettre ceci en place mais en plus j'aurais de quoi réaliser la quasi-totalité des figures que je pourrais espérer.

Il manquerait tout de même la possibilité de réaliser des figures en, notamment, sciences de l'ingé ; néanmoins je crois que ceci ne se fera qu'une fois que je serai arrivé à tout faire sur deux axes. Je m'attaquerais alors surement à une généralisation sur trois axes mais clairement, c'est plus compliqué que prévu à mettre correctement en place sans se perdre dans des calculs et des fonctions alambiquées.

En tout cas je te remercie (d'autant plus si tu veux bien m'expliquer un peu le côté programmation un peu plus tard. À nouveau, ne te presse pas tu peux l'expliquer d'ici quelques jours sans soucis :)) car je sens qu'avec ces deux fichiers je vais m'amuser comme un petit fou durant tout le weekend ! ^^

Bernard-maths
22-04-2023 12:44:46

Suite des programmes :

Puisque les liens fonctionnent, je joins un 2ème programme gérant les faces cachées, pour un polyèdre CONVEXE, après c'est plus dur ...

cg9m.jpg

Et les liens :

https://www.cjoint.com/c/MDwjz3EmYzl
https://www.cjoint.com/doc/23_04/MDwjz3 … bles-2.ggb


Même principe, mais en plus (c'est en couleur :-)) les faces cachées ne sont pas affichées : l'effet de voir en 3D est bon !

Je reviendrai sur la programmation ...

Le programme fait passer d'un cube de côté 2 à son octaèdre dual (interne), et vice-versa avec le cube "côté carré" ... affiché.

Sur la figure est affichée la liste des quadrilatères, verts ou jaunes, et on voit ceux qui sont affichés ou non. On peut ouvrir la liste des triangles rouges, et on verra aussi pour eux ! En faisant tourner la figure, on voit les changements d'affichage en direct ...

Bon amusement.

A plus, Bernard-maths

Bernard-maths
22-04-2023 12:41:40

Bonjour !

Oui, j'ai des problèmes avec mon ordi ...

Alors je vais essayer de reprendre ce que j'ai fait, mais c'est vieux !
Et en ce moment je suis très fatigué, alors cool !

Cette application n'utilise QUE 2 rotations ... ce n'est pas ton problème posé ! Mais je pense que cela revient "presque" au même ???

Tout dépend de ce que tu veux obtenir ... soit disposer d'un objet (le cube) et le faire tourner pour le voir dans n'importe quelle position, ou presque, et là mon programme convient ;ou bien pouvoir le faire tourner selon 3 axes, et là c'est tes calculs qu'il faut continuer !

Bernard-maths

Blubber
22-04-2023 12:39:49

Je crois que je commence à comprendre comment cela fonctionne.

La projection de chaque point est déterminée par ses coordonnées listées dans la barre à gauche (par exemple $B$ est déterminé par $(x_B, y_B)$ et chacune de ces coordonnées est explicitement définie (par exemple $y_B=z_{B} c_{\beta}-(x_{B} c_{\alpha}-y_{B} s_{\alpha}) s_{\beta}$) avec le cosinus ($c$) et le sinus ($s$) de $\alpha$ et $\beta$.

Blubber
22-04-2023 12:00:29

Bonjour Bernard-maths.

J'ai pu télécharger le fichier GeoGebra et le lancer sans soucis.

MDwk56PsNRf_Capture-d%E2%80%99e%CC%81cran-2023-04-22-a%CC%80-12.57.28.png

J'essaierai donc à présent de comprendre ce qu'il s'y passe bien qu'un peu de contexte ne serait pas de refus. x')

Bernard-maths
22-04-2023 10:49:05

Bonjour Blubber ! Et les autres !

Donc, vers 2008 (ou un peu avant), lorsque GeoGebra n'était pas encore en 3D, j'ai développé un module permettant de représenter en 2D une figure (ici des polyèdres) définie en 3D. ET de la faire tourner, grâce à 2 curseurs ... L'image est la projection de cette figure 3D.

J'ai procédé en plusieurs étapes (que je n'ai pas documentées !), et ici je vous donne la 1ère étape, puis une dernière plus élaborée.
La première représente un cube de sommets (+-1;+-1;+-1) ... Les 2 curseurs sont des ellipses qu'on peut parcourir grâce à un point V1 ou W1), sans être limité par les bornes d'un curseur "standard".
Evidemment la gestion de ces curseurs amène "du monde" dans la feuille !

Sur le dessin ci-joint, on voit à droite le bloc de 2 ellipses, et la figure à gauche. On voit aussi tous les points "en plus" !

093q.jpg

Le programme est le suivant : Y'A UN OS sur les adresses ??? Avez-vous un problèmes ???

https://www.cjoint.com/c/MDwjyIdacil
https://www.cjoint.com/doc/23_04/MDwjyI … -faces.ggb


J'attend une réponse ...! La suite après ...

Bernard-maths

Blubber
20-04-2023 22:46:45

Bonsoir Bernard-maths.

Je suis en effet intéressé par ce programme GeoGebra ! :)
Je pense que je serais à même de me débrouiller avec afin d'essayer d'en tirer le plus de choses possibles.

Merci d'avance. :)

Bernard-maths
20-04-2023 18:22:27

Bonsoir Blubber !

Je viens de retrouver un vieux programme en GeoGebra, datant de 2008, avant que GeoGebra en 3D soit disponible.

Avec 2 curseurs pour les angles, on fait tourner un cube ... Il y a toutes les formules sur les coordonnées !

Si tu veux, je te l'envoie, et tu te débrouilles avec ... ?

Bernard-maths

Blubber
09-03-2023 17:21:37

Petite modification, je suis passé sur les angles d'euler qui me sont un peu plus naturel.
Deuxième partie donc, on se doit de projeter correctement nos coordonnées pour cela, rien de plus simple, il nous faut juste une fonction projection telle que celle-ci


vardef pr(expr x, y, z) =
  x*e[0] + y*e[1] + z*e[2]
enddef ;
 

J'obtiens donc pour $\psi=0, \theta=280, \phi=225$ ceci
MCjqkxActIf_cube.png

Il me reste tout de même (pour l'instant) deux questionnements :

  • Quelles sont les valeurs d'angles utilisées pour obtenir la disposition en noir sur cette image ?

  • Je me casse la tête à écrire une base puis à réaliser une projection dans cette base… peut-être y a-t-il moyen de faire ça plus directement ? (de loin j'imagine que ça utiliserait les produits scalaires et vectoriels ? Mais je ne vois pas trop comment)

Blubber
09-03-2023 15:03:40

Bonjour,
Je suis actuellement entrain d'essayer de projeter une figure 3D (quelconque) sur un plan en 2D avec MetaPost pour mes cours (et aussi pour le défi, j'avoue). Simplement, MetaPost n'ayant de support intégré pour les matrices ni même pour la 3D j'aimerais essayer de m'en passer (histoire de ne pas avoir à m'en soucier et me tuer à la tache pour tricher avec MetaPost).

Pour ce faire, la priorité est (selon moi) de pouvoir réaliser des rotations sur les trois axes $x$, $y$ et $z$ puis d'enfin réaliser les projections.

Commençons donc par nous chauffer avec des rotations 2D à l'aide de la matrice $$\begin{pmatrix}\cos(\theta)&-\sin(\theta)\\\sin(\theta)&\cos(\theta)\end{pmatrix}$$ Deux choix s'offrent à nous:

  1. Créer une base $(e_0,e_1)$ de telle sorte que nos coordonnées sont obtenues à partir de cette base; auquel cas
    $$\left\{\begin{array}{lll}e_0 & = & (\cos(\theta),\sin(\theta)) \\e_1 & = & (-\sin(\theta), \cos(\theta))\end{array}\right.$$

  2. Créer une fonction rotation, pour cela, on "transforme" notre matrice de sorte à obtenir un vecteur avec les coordonnées suivantes:
    $$\left\{\begin{array}{lll}x' & = & x\cos(\theta)-y\sin(\theta) \\y' & = & x\sin(\theta)+y\cos(\theta)\end{array}\right.$$
    ainsi, notre fonction devrait ressembler à ceci :


    def rotation(expr a, theta) =
      ((xpart a)*cosd(theta) - (ypart a)*sind(theta),
       (xpart a)*sind(theta) + (ypart a)*cosd(theta))
    enddef ;
     

Bref, ceci est simple et fonctionne très bien.
MCjmtZejFyf_rotation2D.png

Maintenant là où je commence à coincer c'est que j'aimerais pouvoir créer aussi bien une base que la fonction rotation en 3D pour les trois axes. Wikipedia nous dit qu'il nous faut multiplier les trois matrices suivantes :
$$R_x=\begin{pmatrix}1&0&0\\0&\cos(\alpha)&-\sin(\alpha)\\0&\sin(\alpha)&\cos(\alpha)\end{pmatrix} \qquad R_y=\begin{pmatrix}\cos(\beta)&0&\sin(\beta)\\0&1&0\\-\sin(\beta)&0&\cos(\beta)\end{pmatrix} \qquad R_z=\begin{pmatrix}\cos(\gamma)&-\sin(\gamma)&0\\\sin(\gamma)&\cos(\gamma)&0\\0&0&1\end{pmatrix}$$
Soit, après calcul (merci wolframalpha)
MCjn101xtsf_rotationMatrice.png
sauf, qu'à nouveau, il n'est pas possible d'utiliser de la 3D out-of-the-box on se retrouve donc, enfin, à devoir utiliser la projection orthogonale en ne gardant pas les valeurs en $z$ (on retire donc la dernière ligne de notre matrice).
Ainsi, pour une rotation de $45\deg$ sur tous les angles ($\alpha$, $\beta$, $\gamma$) pour un repère orthonormé j'obtiens le résultat suivant :
MCjn6IZNhuf_rotation3D.png
Cela parait-il crédible ou bien me suis-je loupé ?

Pied de page des forums