Wolfram 几何计算 | 应用示例
Wolfram 几何计算 | 应用示例
在代码中点击并按下 ,即可编辑并运行任何代码。
+
几何建模与计算。Wolfram 几何为建模、分析、可视化和合成提供了一套全面的集成工具和解决方案,可满足从初学者到高级用户的各种需求。
生成和使用网格区域
生成和使用网格区域
使用内置功能创建 3D 网格: |
mesh=MengerMesh[2,3]
计算网格的区域测量值: |
SurfaceArea[mesh]
再计算一个: |
Volume[mesh]
将网格作为数值计算的域: |
Integrate[yz,{x,y,z}∈mesh]
根据点计算网格: |
SeedRandom[1324];points=RandomReal[{-1,1},{20,2}];{VoronoiMesh[points,Epilog{Red,Point[points]}],DelaunayMesh[points,Epilog{Red,Point[points]}]}
计算几何区域的属性
计算几何区域的属性
导入一个区域(此计算可能需要较长时间): |
In[]:=
physicalregion=ResourceData["Stanford Dragon"]
计算该区域绕其质心的转动惯量(假设密度为 1): |
In[]:=
ℐ=MomentOfInertia[physicalregion];
计算该区域的形心、主轴与主转动惯量: |
In[]:=
center=RegionCentroid[physicalregion];principalAxes=Eigenvectors[ℐ];principalMoments=Eigenvalues[ℐ];
根据特征值缩放主轴,可视化该区域与主轴: |
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[]=
在区域上求解
在区域上求解
定义一组几何图元: |
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]};
使用图元定义构造实体几何区域: |
In[]:=
csgregion=CSGRegion["Difference",{CSGRegion["Union",Most[primitives]],Last[primitives]}]
以多种方式表示几何区域: |
In[]:=
booleanregion=BooleanRegion[(#1||#2||#3)&&!#4&,primitives];RegionConvert[booleanregion,"Implicit"]
求解微分方程以模拟该区域上的温度变化: |
In[]:=
sol=NDSolveu[x,y,z,t]==3u[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,+==1],u[x,y,z,0]==3,u,{t,0,25},{x,y,z}∈booleanregion;
∂
t
2
∇
{x,y,z}
2
x
2
y
在特定时间点可视化解: |
In[]:=
SliceContourPlot3DEvaluate[u[x,y,z,25]/.sol],{"ZStackedPlanes",Range[-1,1,0.2]},{x,y,z}∈Cuboid[{-3,-3,-3},{3,3,3}],
对数值解进行动画演示(此计算可能需要较长时间): |
In[]:=
ListAnimateTableRasterizeSliceContourPlot3DEvaluate[u[x,y,z,t]/.sol],"CenterPlanes",{x,-3,3},{y,-3,3},{z,-3,3},,{t,0,5.,.1},ControlPlacement->Top
导入、修复、导出与打印 3D 模型
导入、修复、导出与打印 3D 模型
导入 3D 模型: |
In[]:=
model=ResourceData["Stanford Bunny"]
找出网格底部的缺陷: |
In[]:=
FindMeshDefects[model,ViewPoint->{0.3,-1.3,-1.5}]
修复缺陷: |
In[]:=
repairedmodel=RepairMesh[model,ViewPoint->{0.3,-1.3,-1.5}]
将模型导出到文件: |
In[]:=
Export["example.stl",repairedmodel]
将模型发送给 3D 打印服务: |
Printout3D[repairedmodel,"Sculpteo"]
探索综合几何
探索综合几何
寻找由几何命题描述的场景随机实例: |
scene=RandomInstance[GeometricScene[{a,b,c,o},{Triangle[{a,b,c}],CircleThrough[{a,b,c},o],o==Midpoint[{a,c}]}]]
探索与场景已知命题相关的猜想: |
conjectures=FindGeometricConjectures[scene]
获取与指定场景相关的猜想列表: |
conjectures["Conclusions"]