Wolfram Computación geométrica | Ejemplos a probar

Edite y ejecute cualquier pieza de código haciendo clic dentro del código y presionando
+
.
Modelado geométrico y computación. Wolfram Computación geométrica proporciona un conjunto completo de herramientas y soluciones integradas para modelar, analizar, visualizar y sintetizar geometría, personalizado para las necesidades de cada usuario, desde principiantes hasta expertos.

Genere y use regiones de malla

Cree una malla en 3D usando funciones incorporadas:
Ejecutar
mesh=MengerMesh[2,3]
Calcule una medida de región de la malla:
Ejecutar
SurfaceArea[mesh]
Calcule otra:
Ejecutar
Volume[mesh]
Use la malla como el dominio de cálculos numéricos:
Ejecutar
Integrate[yz,{x,y,z}∈mesh]
Calcule mallas a partir de puntos:
Ejecutar
SeedRandom[1324];​​points=RandomReal[{-1,1},{20,2}];​​{VoronoiMesh[points,Epilog{Red,Point[points]}],DelaunayMesh[points,Epilog{Red,Point[points]}]}

Calcule propiedades de una región geométrica

Importe una región (esto puede tardar más en evaluarse):
Ejecutar
In[]:=
physicalregion=ResourceData["Stanford Dragon"]
Calcule la inercia rotacional de esta región respecto a su centroide (asumiendo densidad unitaria):
Ejecutar
In[]:=
ℐ=MomentOfInertia[physicalregion];
Calcule el centroide, ejes principales y momentos principales de inercia de esta región:
Ejecutar
In[]:=
center=RegionCentroid[physicalregion];​​principalAxes=Eigenvectors[ℐ];​​principalMoments=Eigenvalues[ℐ];
Visualice la reción con ejes principales escalados de acuerdo a sus valores propios:
Ejecutar
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[]=

Resuelva sobre regiones

Defina un conjunto de primitivas geométricas:
Ejecutar
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]};
Use las primitivas para definir una región geométrica sólida constructiva:
Ejecutar
In[]:=
csgregion=CSGRegion["Difference",{CSGRegion["Union",Most[primitives]],Last[primitives]}]
Represente regiones geométricas en una variedad de maneras:
Ejecutar
In[]:=
booleanregion=BooleanRegion[(#1||#2||#3)&&!#4&,primitives];​​RegionConvert[booleanregion,"Implicit"]
Resuelva una ecuación diferencial para modelar cambios de temperatura sobre esta región:
Ejecutar
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;
Visualice la solución en un momento en particular:
Ejecutar
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

Anime la solución numérica (esto puede tardar más en evaluarse):
Ejecutar
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

Importe, repare, exporte e imprima un modelo 3D

Importe un modelo 3D:
Ejecutar
In[]:=
model=ResourceData["Stanford Bunny"]
Encuentre los agujeros en el fondo de esta malla:
Ejecutar
In[]:=
FindMeshDefects[model,ViewPoint->{0.3,-1.3,-1.5}]
Repare los agujeros:
Ejecutar
In[]:=
repairedmodel=RepairMesh[model,ViewPoint->{0.3,-1.3,-1.5}]
Exporte el modelo a un archivo:
Ejecutar
In[]:=
Export["example.stl",repairedmodel]
Envíe el modelo a un servicio de impresión 3D:
Ejecutar
Printout3D[repairedmodel,"Sculpteo"]

Explore geometría sintética

Encuentre una instancia aleatoria de una escena descrita por proposiciones geométricas:
Ejecutar
scene=RandomInstance[​​GeometricScene[{a,b,c,o},{Triangle[{a,b,c}],CircleThrough[{a,b,c},o],o==Midpoint[{a,c}]}]​​]
Explore conjeturas asociadas con las proposiciones conocidas de una escena:
Ejecutar
conjectures=FindGeometricConjectures[scene]
Obtenga una lista de conjeturas asociadas con la escena especificada:
Ejecutar
conjectures["Conclusions"]