# Adding Labels, Angles, Domains on Objects for Making Math Models

I am very new to Blender. I have been looking for a program to create a model for visualizing different math concepts. Blender looks promising as it provides the possibility for not only this, but graphical modeling far beyond as well, so I would like to learn it to build upon this knowledge continually. To begin I would like to start by making an image similar to this:

I have been able to get some objects and planes created with some coloring and shading, but I haven't been able to find out how to get certain domains to be addressed individually, or how to get angle labels on these domains.

For example, in the image above, the ABC region has a different texture than the whole sphere. Is there a way to select a region where to objects intersect, etc. in blender? How would this triangle on a sphere be created and labeled in Blender?

Thank you very much for any help, I greatly appreciate it and will continue to update this thread if I find any answers in the meantime.

There are many possible approaches. If you are going to animate this or want to play with the angles for the final render one possible solution are modifiers. Please bear in mind, that these are very specific questions and the solution might be somewhat complex, so I can only outline the basics and not every step. I will try to keep it simple.

First goal is to create a region ABC that auto-updates when we rotate the tori.

Make sure the 3D cursor is at the centre.

To create region ABC add a UV Sphere and a cube. Select the cube and scale it up a bit, so that it contains the sphere completely with a margin. Move one of its sides to the centre of the sphere in "Edit Mode". Back in "Object Mode" copy the cube two times and rotate the copies by 90 degrees around 2 different global axes. Lets name the cubes Cube.A, Cube.B and Cube.C. Move all cubes to layer 2. (ok, mathematically these cubes are now cuboids.. but lets call them cubes for simplicity)

Copy the sphere 2 times. Lets name the spheres Sphere.Fill, Sphere.Wire, Sphere.ABC.

Move Sphere.Fill and Sphere.Wire to layer 3. Select Sphere.ABC and add a "Solidify Modifier". Change thickness e.g. to 0.060 or less and offset to 1. Add 3 "Boolean Modifiers" and set the target to the 3 cubes respectively. Set "Operation" of all 3 modifiers to "Difference". This is, what it should look like:

For the angle labels add another UV Sphere and scale it down e.g. 0.5 and move its centre to one corner of ABC on the surface of Sphere.Fill. Lets name it Sphere.Cut. Add another "Boolean Modifier" to Sphere.ABC and set its "Operation" to "Difference", target to Sphere.Cut. Add an "EdgeSplit Modifier" to Sphere.ABC. Copy Sphere.ABC and change the Operation of the last "Boolean Modifier" to "Intersect". Lets name the copy Sphere.Angle. This is what it should look like:

For the text label of the angle add "Text" and tab in to change it to whatever you need. In the text properties under "Paragraph" change align to centre. Place the object centre of the text slightly above the surface of Sphere.Fill inside of Sphere.Cut and parent it to Sphere.Cut. Add a "Shrinkwrap Modifier" to the text and set the target to Sphere.Fill. Tick on "Keep above Surface". Change the offset until the text is above the surface of Sphere.Angle. This is what it should look like:

Some notes about materials. Enable Z Transparency for all materials. This allows to set "Z-Offset" which avoids unwanted flickering for overlapping geometry (also called Z-fighting). For Sphere.Wire switch the material type from "Surface" to "Wire" and "Z-Offset" e.g. of 0.1 or less. Increase the "Z-Offset" slightly for Sphere.Angle and Sphere.ABC and then again for the Text. For this simple example its enough to set "No Shadow" for the single sun lamp.

For the tori you can use bezier circles with another bezier circle as Bevel Object. Then you can parent those circles to the cubes respectively.

Afterwards rotating the cubes should update region ABC automatically. Sphere.Cut must be tracked manually. A rig might be needed for animation but this is beyond the topic.