Wolfram Geometrische Berechnung | Zum Ausprobieren

Nehmen Sie Änderungen vor und führen Sie jeden Code aus, indem Sie in den Code klicken und die Tastenkombination
+
drücken.
Geometrische Modellierung & Berechnung. Wolfram Geometrie bietet ein umfassendes Set an integrierten Werkzeugen und Lösungen für die Modellierung, Analyse, Visualisierung und Synthese von geometrischen Elementen, zugeschnitten auf die Bedürfnisse von Einsteigern und fortgeschrittenen Anwendern.

Gitternetzregionen generieren und verwenden

Erstellen Sie mithilfe von eingebauten Funktionen ein 3D-Netz:
Ausführen
mesh=MengerMesh[2,3]
Berechnen Sie den Flächeninhalt des Gitternetzes:
Ausführen
SurfaceArea[mesh]
Führen Sie eine weitere geometrische Messung durch:
Ausführen
Volume[mesh]
Verwenden Sie das Netz als Domäne zur Visualisierung:
Ausführen
Integrate[yz,{x,y,z}∈mesh]
Berechnen Sie Netze aus Punkten:
Ausführen
SeedRandom[1324];​​points=RandomReal[{-1,1},{20,2}];​​{VoronoiMesh[points,Epilog{Red,Point[points]}],DelaunayMesh[points,Epilog{Red,Point[points]}]}

Eigenschaften einer geometrischen Region berechnen

Importieren Sie eine Region (die Auswertung kann länger dauern):
Ausführen
In[]:=
physicalregion=ResourceData["Stanford Dragon"]
Berechnen Sie die Rotationsträgheit dieser Region um ihren Schwerpunkt (unter der Annahme einer einheitlichen Dichte):
Ausführen
In[]:=
ℐ=MomentOfInertia[physicalregion];
Berechnen Sie den Schwerpunkt, die Hauptachsen und die Hauptträgheitsmomente dieser Region:
Ausführen
In[]:=
center=RegionCentroid[physicalregion];​​principalAxes=Eigenvectors[ℐ];​​principalMoments=Eigenvalues[ℐ];
Visualisieren Sie die Region mit Hauptachsen, die entsprechend ihrer Eigenwerte skaliert sind:
Ausführen
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[]=

Über Regionen lösen

Definieren Sie eine Reihe von geometrischen Primitiven:
Ausführen
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]};
Verwenden Sie die Primitive, um einen konstruktiven, festen geometrischen Bereich zu definieren:
Ausführen
In[]:=
csgregion=CSGRegion["Difference",{CSGRegion["Union",Most[primitives]],Last[primitives]}]
Stellen Sie geometrische Regionen auf verschiedene Arten dar:
Ausführen
In[]:=
booleanregion=BooleanRegion[(#1||#2||#3)&&!#4&,primitives];​​RegionConvert[booleanregion,"Implicit"]
Lösen Sie eine Differentialgleichung, um Temperaturänderungen in dieser Region zu modellieren:
Ausführen
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;
Visualisieren Sie die Lösung zu einem bestimmten Zeitpunkt:
Ausführen
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

Erstellen Sie eine Animation der numerischen Lösung (die Auswertung kann länger dauern):
Ausführen
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

Ein 3D-Modell importieren, reparieren, exportieren und drucken

Importieren Sie ein 3D-Modell:
Ausführen
In[]:=
model=ResourceData["Stanford Bunny"]
Finde die Löcher am unteren Rand dieses Gitternetzes:
Ausführen
In[]:=
FindMeshDefects[model,ViewPoint->{0.3,-1.3,-1.5}]
Reparieren Sie die Löcher:
Ausführen
In[]:=
repairedmodel=RepairMesh[model,ViewPoint->{0.3,-1.3,-1.5}]
Exportieren Sie das Modell in eine Datei:
Ausführen
In[]:=
Export["example.stl",repairedmodel]
Senden Sie das Modell an einen 3D-Druckdienstleister:
Ausführen
Printout3D[repairedmodel,"Sculpteo"]

Synthetische Geometrie

Suchen Sie ein zufälliges Beispiel einer Szene, die durch geometrische Sätze beschrieben wird:
Ausführen
scene=RandomInstance[​​GeometricScene[{a,b,c,o},{Triangle[{a,b,c}],CircleThrough[{a,b,c},o],o==Midpoint[{a,c}]}]​​]
Untersuchen Sie Vermutungen in Zusammenhang mit den bekannten Sätzen einer Szene:
Ausführen
In[]:=
conjectures=FindGeometricConjectures[scene]
Out[]=
FindGeometricConjectures[scene]
Erhalten Sie eine Liste von Vermutungen in Zusammenhang mit der angegebenen Szene:
Ausführen
conjectures["Conclusions"]