Calcul géométrique avec Wolfram | Choses à essayer

Effectuez des modifications et exécutez n’importe quel morceau de code en cliquant à l’intérieur du code et en appuyant sur
+
.
Modélisation et calcul géométriques. La géométrie avec Wolfram offre un ensemble complet d’outils et de solutions intégrés pour la modélisation, l’analyse, la visualisation et la synthèse de la géométrie, adaptés aux besoins de chacun, des débutants aux plus avancés.

Générez et utilisez des régions maillées

Créez un maillage 3D à l’aide de fonctions intégrées :
Exécuter
mesh=MengerMesh[2,3]
Calculez une mesure de la région du maillage :
Exécuter
SurfaceArea[mesh]
Calculez-en une autre :
Exécuter
Volume[mesh]
Utilisez le maillage comme domaine de calcul numérique :
Exécuter
Integrate[yz,{x,y,z}∈mesh]
Calculez des maillages à partir de points :
Exécuter
SeedRandom[1324];​​points=RandomReal[{-1,1},{20,2}];​​{VoronoiMesh[points,Epilog{Red,Point[points]}],DelaunayMesh[points,Epilog{Red,Point[points]}]}

Calculez les propriétés d’une région géométrique

Importez une région (l’évaluation peut prendre plus de temps) :
Exécuter
In[]:=
physicalregion=ResourceData["Stanford Dragon"]
Calculez l’inertie de rotation de cette région autour de son centroïde (en supposant une densité unitaire) :
Exécuter
In[]:=
ℐ=MomentOfInertia[physicalregion];
Calculez le centroïde, les axes principaux et les moments d’inertie principaux de cette région :
Exécuter
In[]:=
center=RegionCentroid[physicalregion];​​principalAxes=Eigenvectors[ℐ];​​principalMoments=Eigenvalues[ℐ];
Visualisez la région avec les axes principaux mis à l’échelle en fonction de leurs valeurs propres :
Exécuter
In[]:=
Show[physicalregion,Graphics3D[MapThread[{#1,Arrowheads[{-0.05`,0.05`}],Arrow[Tube[{-#2,#2}#30.5`+Threaded[center]]]}&,{{Red,Blue,Green},principalAxes,Normalize[principalMoments]}]]]
Out[]=

Résolvez sur l’ensemble des régions

Définissez un ensemble de primitives géométriques :
Exécuter
In[]:=
primitives={Cuboid[{-3,-3,-.1},{3,3,.1}],Cylinder[{{-3,0,0},{3,0,0}},1],Cylinder[{{0,-3,0},{0,3,0}},1],Cylinder[{{0,0,-2},{0,0,2}},1]};
Utilisez les primitives pour définir une région géométrique solide constructive :
Exécuter
In[]:=
csgregion=CSGRegion["Difference",{CSGRegion["Union",Most[primitives]],Last[primitives]}]
Représentez des régions géométriques de différentes manières :
Exécuter
In[]:=
booleanregion=BooleanRegion[(#1||#2||#3)&&!#4&,primitives];​​RegionConvert[booleanregion,"Implicit"]
Résolvez une équation différentielle pour modéliser les changements de température dans cette région :
Exécuter
In[]:=
sol=NDSolve​​
∂
t
u[x,y,z,t]==3
2
∇
{x,y,z}
u[x,y,z,t],​​DirichletCondition[u[x,y,z,t]==1,{x==3,x==-3,y==3,y==-3}],​​DirichletCondition[u[x,y,z,t]==5,
2
x
+
2
y
==1],​​u[x,y,z,0]==3,​​u,{t,0,25},{x,y,z}∈booleanregion;
Visualisez la solution à un moment donné :
Exécuter
In[]:=
SliceContourPlot3DEvaluate[u[x,y,z,25]/.sol],{"ZStackedPlanes",Range[-1,1,0.2]},​​{x,y,z}∈Cuboid[{-3,-3,-3},{3,3,3}],
options

Animez la solution numérique (l’évaluation peut prendre plus de temps) :
Exécuter
In[]:=
ListAnimateTable​​RasterizeSliceContourPlot3DEvaluate[u[x,y,z,t]/.sol],"CenterPlanes",​​{x,-3,3},{y,-3,3},{z,-3,3},
options
,{t,0,5.,.1},​​ControlPlacement->Top

Importez, réparez, exportez et imprimez un modèle 3D

Importez un modèle 3D :
Exécuter
In[]:=
model=ResourceData["Stanford Bunny"]
Trouvez les trous au bas de cette maille :
Exécuter
In[]:=
FindMeshDefects[model,ViewPoint->{0.3,-1.3,-1.5}]
Réparez les trous :
Exécuter
In[]:=
repairedmodel=RepairMesh[model,ViewPoint->{0.3,-1.3,-1.5}]
Exportez le modèle vers un fichier :
Exécuter
In[]:=
Export["example.stl",repairedmodel]
Envoyez le modèle à un service d’impression 3D :
Exécuter
Printout3D[repairedmodel,"Sculpteo"]

Explorez la géométrie synthétique

Trouvez une instance aléatoire d’une figure décrite par des propositions géométriques :
Exécuter
scene=RandomInstance[​​GeometricScene[{a,b,c,o},{Triangle[{a,b,c}],CircleThrough[{a,b,c},o],o==Midpoint[{a,c}]}]​​]
Explorez les conjectures associées aux propositions connues d’une figure :
Exécuter
conjectures=FindGeometricConjectures[scene]
Obtenez une liste de conjectures associées à la figure spécifiée :
Exécuter
conjectures["Conclusions"]