What’s New In Geometry

Charles Pooh, Wolfram Research

Join the Conversation #WolframTechConf

Overview of the Talk

1. Usability

2. Functionality

3. Plans

Usability

Usability — Attached Cells

ExampleData[{"Geometry3D","Beethoven"}]

Usability — Attached Cells

MengerMesh[3,2]

Usability — Auto visualization

ImageCollage[{3-> ,1-> ,1-> },Background->White,ImagePadding-> 1]

Usability — Auto visualization

Disk[]

Functionality

WordCloud[Join[Names["System`*Region*"],Names["System`*Mesh*"]],Annulus[]]//CellDisplay

Functionality — Region

Region[...] displays in a notebook as a plot of a region with embedding dimensions 1, 2 and 3.

Region[...] supports PlotTheme and RegionSize options.

Region[...] can be used with functions such as RegionMember, RegionDistance, RegionMeasure and NIntegrate.

For a mesh, Region represents the underlying three-dimensional point set without the mesh structure.

ℛ=DelaunayMesh[RandomReal[1,{50,2}]]

MeshRegionQ[ℛ]

RegionQ[ℛ]

Region[ℛ]

Functionality — Boolean Regions & Operations

Boolean Operations: RegionIntersection, RegionUnion, RegionDifference, RegionSymmetricDifference

BooleanRegion[...] represents a Boolean combination of regions.

For boundary meshes, BooleanRegion[...] represents the smallest boundary mesh that contains the Boolean combination of the boundary meshes.

For mesh regions, BooleanRegion[...] represents the smallest mesh region that contains the Boolean combination of the mesh regions.

RegionIntersection[Disk[{-.5,0},1],Disk[{.5,0},1]]

Functionality — Boolean Operations

Special Regions

(Subscript[ℛ, 1])=Triangle[{{0,0},{2,3},{-2,3}}];
(Subscript[ℛ, 2])=Triangle[{{0,2},{2,-1},{-2,-1}}];

(Subscript[ℛ, 3])=RegionIntersection[(Subscript[ℛ, 1]),(Subscript[ℛ, 2])]

Graphics[{Opacity[0.5],{Red,(Subscript[ℛ, 1])},{Green,(Subscript[ℛ, 2])},{Blue,(Subscript[ℛ, 3])}}]

Formula Regions

(Subscript[ℛ, 1])=ImplicitRegion[(x^2)+(y^2)+(z^2)≤1,{x,y,z}];
(Subscript[ℛ, 2])=ImplicitRegion[(((x-1))^2)+(y^2)+(z^2)≤1,{x,y,z}];

RegionIntersection[(Subscript[ℛ, 1]),(Subscript[ℛ, 2])]

Region[%]

Mesh Regions

RegionIntersection[,]

Derived Regions

(Subscript[ℛ, 1])=TransformedRegion[Cuboid[],RotationTransform[Pi/8,{1,0,0}]];
(Subscript[ℛ, 2])=TransformedRegion[Cuboid[],RotationTransform[Pi/8,{0,1,0}]];

RegionIntersection[(Subscript[ℛ, 1]),(Subscript[ℛ, 2])]

Functionality — Boolean Operations over Meshes

1D

RegionDifference[,]

2D

RegionDifference[,]

3D

RegionDifference[,]

Functionality — RegionImage & ImageMesh

RegionImage[...] returns a rasterized grayscale 2D or 3D image of a region.

RegionImage[]

ImageMesh[...] returns a rasterized grayscale 2D or 3D image of a region.

ImageMesh[%]

Functionality — Region Relations

RegionEqual[...] gives True if two regions are equal.

(Subscript[ℛ, 1])=Rectangle[];
(Subscript[ℛ, 2])=Polygon[{{0,0},{1,0},{1,1},{0,1}}];

RegionEqual[(Subscript[ℛ, 1]),(Subscript[ℛ, 2])]

RegionDisjoint[...] gives True if two regions are disjoint.

(Subscript[ℛ, 1])=Triangle[];
(Subscript[ℛ, 2])=Disk[{1,1},1/2];

RegionDisjoint[(Subscript[ℛ, 1]),(Subscript[ℛ, 2])]

Graphics[{Opacity[0.5],{Red,(Subscript[ℛ, 1])},{Green,(Subscript[ℛ, 2])}}]

RegionWithin[reg1, reg2] gives True if reg2 is contained within reg1.

(Subscript[ℛ, 1])=ImplicitRegion[(Subscript[r, 1]^2)≤(x^2)+(y^2)≤(Subscript[r, 2]^2),{x,y}];
(Subscript[ℛ, 2])=Annulus[];

RegionWithin[(Subscript[ℛ, 1]),(Subscript[ℛ, 2])]

Functionality — And More …

WordCloud[Join[Names["System`*Region*"],Names["System`*Mesh*"]],Annulus[]]//CellDisplay

Geometry Exhibit

Complementary Talks

UnityLink: The Wolfram Language & The Unity Game Engine
          Wednesday 4:00-5:00PM
          Badger

UnityLink: Hands-on
          Thursday 1:00-2:00PM
          Badger

Geometric Modeling
          Friday 1:30-2:00PM
            Spartan / Golden Gospher

Problem Solving in Geometry
          Friday 2:00-2:30PM
          Spartan / Golden Gospher