Fat object (geometry)

From testwiki
Jump to navigation Jump to search

Template:Short description

In geometry, a fat object is an object in two or more dimensions, whose lengths in the different dimensions are similar. For example, a square is fat because its length and width are identical. A 2-by-1 rectangle is thinner than a square, but it is fat relative to a 10-by-1 rectangle. Similarly, a circle is fatter than a 1-by-10 ellipse and an equilateral triangle is fatter than a very obtuse triangle.

Fat objects are especially important in computational geometry. Many algorithms in computational geometry can perform much better if their input consists of only fat objects; see the applications section below.

Global fatness

Given a constant Template:Math, an object Template:Mvar is called Template:Mvar-fat if its "slimness factor" is at most Template:Mvar. The "slimness factor" has different definitions in different papers. A common definition[1] is:

side of smallest cube enclosing oside of largest cube enclosed in o

where Template:Mvar and the cubes are Template:Mvar-dimensional. A 2-dimensional cube is a square, so the slimness factor of a square is 1 (since its smallest enclosing square is the same as its largest enclosed disk). The slimness factor of a 10-by-1 rectangle is 10. The slimness factor of a circle is √2. Hence, by this definition, a square is 1-fat but a disk and a 10×1 rectangle are not 1-fat. A square is also 2-fat (since its slimness factor is less than 2), 3-fat, etc. A disk is also 2-fat (and also 3-fat etc.), but a 10×1 rectangle is not 2-fat. Every shape is ∞-fat, since by definition the slimness factor is always at most ∞.

The above definition can be termed two-cubes fatness since it is based on the ratio between the side-lengths of two cubes. Similarly, it is possible to define two-balls fatness, in which a d-dimensional ball is used instead.[2] A 2-dimensional ball is a disk. According to this alternative definition, a disk is 1-fat but a square is not 1-fat, since its two-balls-slimness is √2.

An alternative definition, that can be termed enclosing-ball fatness (also called "thickness"[3]) is based on the following slimness factor:

(volume of smallest ball enclosing ovolume of o)1/d

The exponent Template:Math makes this definition a ratio of two lengths, so that it is comparable to the two-balls-fatness.

Here, too, a cube can be used instead of a ball.

Similarly it is possible to define the enclosed-ball fatness based on the following slimness factor:

(volume of ovolume of largest ball enclosed in o)1/d

Enclosing-fatness vs. enclosed-fatness

The enclosing-ball/cube-slimness might be very different from the enclosed-ball/cube-slimness.

For example, consider a lollipop with a candy in the shape of a Template:Math square and a stick in the shape of a Template:Math rectangle (with Template:Math). As Template:Mvar increases, the area of the enclosing cube (Template:Math) increases, but the area of the enclosed cube remains constant (=1) and the total area of the shape also remains constant (=2). Thus the enclosing-cube-slimness can grow arbitrarily while the enclosed-cube-slimness remains constant (=√2). See this GeoGebra page for a demonstration.

On the other hand, consider a rectilinear 'snake' with width Template:Math and length Template:Mvar, that is entirely folded within a square of side length 1. As Template:Mvar increases, the area of the enclosed cube (Template:Math) decreases, but the total areas of the snake and of the enclosing cube remain constant (=1). Thus the enclosed-cube-slimness can grow arbitrarily while the enclosing-cube-slimness remains constant (=1).

With both the lollipop and the snake, the two-cubes-slimness grows arbitrarily, since in general:

(enclosing-ball-slimness)×(enclosed-ball-slimness)=(two-balls-slimness) (enclosing-cube-slimness)×(enclosed-cube-slimness)=(two-cubes-slimness)

Since all slimness factor are at least 1, it follows that if an object Template:Mvar is Template:Mvar-fat according to the two-balls/cubes definition, it is also Template:Mvar-fat according to the enclosing-ball/cube and enclosed-ball/cube definitions (but the opposite is not true, as exemplified above).

Balls vs. cubes

The volume of a Template:Mvar-dimensional ball of radius Template:Mvar is: Vdrd, where Template:Mvar is a dimension-dependent constant: Vd=πd/2Γ(d2+1)

A Template:Mvar-dimensional cube with side-length Template:Math has volume Template:Math. It is enclosed in a Template:Mvar-dimensional ball with radius ad whose volume is Vd(ad)d. Hence for every Template:Mvar-dimensional object:

(enclosing-ball-slimness)(enclosing-cube-slimness)×Vdd×d2

For even dimensions (Template:Math), the factor simplifies to: πk2/k!2k. In particular, for two-dimensional shapes Template:Math and the factor is: π21.25, so:

(enclosing-disk-slimness)(enclosing-square-slimness)×1.25

From similar considerations:

(enclosed-cube-slimness)(enclosed-ball-slimness)×Vdd×d2 (enclosed-square-slimness)(enclosed-disk-slimness)×1.25

A Template:Mvar-dimensional ball with radius Template:Mvar is enclosed in a Template:Mvar-dimensional cube with side-length Template:Math. Hence for every Template:Mvar-dimensional object:

(enclosing-cube-slimness)(enclosing-ball-slimness)×2Vdd

For even dimensions (Template:Math), the factor simplifies to: 2/(k!)2k /π. In particular, for two-dimensional shapes the factor is: 2π1.13, so:

(enclosing-square-slimness)(enclosing-disk-slimness)×1.13

From similar considerations:

(enclosed-ball-slimness)(enclosed-cube-slimness)×2Vdd (enclosed-disk-slimness)(enclosed-square-slimness)×1.13

Multiplying the above relations gives the following simple relations:

(two-balls-slimness)(two-cubes-slimness)×d (two-cubes-slimness)(two-balls-slimness)×d

Thus, an Template:Mvar-fat object according to the either the two-balls or the two-cubes definition is at most Template:Tmath-fat according to the alternative definition.

Local fatness

The above definitions are all global in the sense that they don't care about small thin areas that are part of a large fat object.

For example, consider a lollipop with a candy in the shape of a Template:Math square and a stick in the shape of a Template:Math rectangle (with Template:Math). As Template:Mvar increases, the area of the enclosing cube (=4) and the area of the enclosed cube (=1) remain constant, while the total area of the shape changes only slightly (Template:Math). Thus all three slimness factors are bounded:

(enclosing-cube-slimness)2,(enclosed-cube-slimness)2,(two-cube-slimness)=2.

Thus by all definitions the lollipop is 2-fat. However, the stick-part of the lollipop obviously becomes thinner and thinner.

In some applications, such thin parts are unacceptable, so local fatness, based on a local slimness factor, may be more appropriate. For every global slimness factor, it is possible to define a local version. For example, for the enclosing-ball-slimness, it is possible to define the local-enclosing-ball slimness factor of an object Template:Mvar by considering the set Template:Mvar of all balls whose center is inside Template:Mvar and whose boundary intersects the boundary of Template:Mvar (i.e. not entirely containing Template:Mvar). The local-enclosing-ball-slimness factor is defined as:[3][4]

12supbB(volume(B)volume(Bo))1/d

The 1/2 is a normalization factor that makes the local-enclosing-ball-slimness of a ball equal to 1. The local-enclosing-ball-slimness of the lollipop-shape described above is dominated by the Template:Math stick, and it goes to ∞ as Template:Mvar grows. Thus by the local definition the above lollipop is not 2-fat.

Global vs. local definitions

Local-fatness implies global-fatness. Here is a proof sketch for fatness based on enclosing balls. By definition, the volume of the smallest enclosing ball is ≤ the volume of any other enclosing ball. In particular, it is ≤ the volume of any enclosing ball whose center is inside Template:Mvar and whose boundary touches the boundary of Template:Mvar. But every such enclosing ball Template:Mvar is in the set Template:Mvar considered by the definition of local-enclosing-ball slimness. Hence:

(enclosing-ball-slimness)d=volume(smallest enclosing ball)volume(o)volume(bB)volume(o)=volume(bB)volume(bo)[2×(local-enclosing-ball-slimness)]d

Hence:

(enclosing-ball-slimness)(local-enclosing-ball-slimness)×2

For a convex body, the opposite is also true: local-fatness implies global-fatness. The proof[3] is based on the following lemma. Let Template:Mvar be a convex object. Let Template:Mvar be a point in Template:Mvar. Let Template:Mvar and Template:Mvar be two balls centered at Template:Mvar such that Template:Mvar is smaller than Template:Mvar. Then Template:Mvar intersects a larger portion of Template:Mvar than of Template:Mvar, i.e.:

volume (bo)volume (b)volume (Bo)volume (B)

Proof sketch: standing at the point Template:Mvar, we can look at different angles Template:Mvar and measure the distance to the boundary of Template:Mvar. Because Template:Mvar is convex, this distance is a function, say Template:Math. We can calculate the left-hand side of the inequality by integrating the following function (multiplied by some determinant function) over all angles: f(θ)=min(r(θ)radius (b),1)

Similarly we can calculate the right-hand side of the inequality by integrating the following function: F(θ)=min(r(θ)radius (B),1)

By checking all 3 possible cases, it is possible to show that always Template:Math. Thus the integral of Template:Mvar is at least the integral of Template:Mvar, and the lemma follows.

The definition of local-enclosing-ball slimness considers all balls that are centered in a point in Template:Mvar and intersect the boundary of Template:Mvar. However, when Template:Mvar is convex, the above lemma allows us to consider, for each point in Template:Mvar, only balls that are maximal in size, i.e., only balls that entirely contain Template:Mvar (and whose boundary intersects the boundary of Template:Mvar). For every such ball Template:Mvar:

volume (b)Cddiameter (o)d

where Template:Mvar is some dimension-dependent constant.

The diameter of Template:Mvar is at most the diameter of the smallest ball enclosing Template:Mvar, and the volume of that ball is: Cd(diameter(smallest ball enclosing o)2)d

Combining all inequalities gives that for every convex object:

(local-enclosing-ball-slimness)(enclosing-ball-slimness)

For non-convex objects, this inequality of course doesn't hold, as exemplified by the lollipop above.

Examples

The following table shows the slimness factor of various shapes based on the different definitions. The two columns of the local definitions are filled with "*" when the shape is convex (in this case, the value of the local slimness equals the value of the corresponding global slimness):

Shape two-balls two-cubes enclosing-ball enclosing-cube enclosed-ball enclosed-cube local-enclosing-ball local-enclosing-cube
square 2 1 π21.25 1 4π1.13 1 * *
Template:Math rectangle with Template:Math 1+b2a2 ba π2(ab+ba)[3] ba 2baπ ba * *
disk 1 2 1 4π1.13 1 π21.25 * *
ellipse with radii Template:Math ba >ba ba >b2πa ba >πba * *
semi-ellipse with radii Template:Math, halved in parallel to Template:Mvar 2ba >2ba 2ba >4bπa 2ba >2πba * *
semidisk 2 5 2 8π1.6 2 5π81.4 * *
equilateral triangle 1+232.15 π31.35 431.52 342+1341.42 * *
isosceles right-angled triangle 1212.4 2 2 2 * *
'lollipop' made of unit square and Template:Math stick, Template:Math b+1 (b+1)2ab+1 ab+1 ba

Fatness of a triangle

Slimness is invariant to scale, so the slimness factor of a triangle (as of any other polygon) can be presented as a function of its angles only. The three ball-based slimness factors can be calculated using well-known trigonometric identities.

Enclosed-ball slimness

The largest circle contained in a triangle is called its incircle. It is known that:

Δ=r2(cotA2+cotB2+cotC2)

where Template:Math is the area of a triangle and Template:Mvar is the radius of the incircle. Hence, the enclosed-ball slimness of a triangle is:

cotA2+cotB2+cotC2π

Enclosing-ball slimness

The smallest containing circle for an acute triangle is its circumcircle, while for an obtuse triangle it is the circle having the triangle's longest side as a diameter.[5]

It is known that:

Δ=R22sinAsinBsinC

where again Template:Math is the area of a triangle and Template:Mvar is the radius of the circumcircle. Hence, for an acute triangle, the enclosing-ball slimness factor is:

π2sinAsinBsinC

It is also known that:

Δ=c22(cotA+cotB)=c2(sinA)(sinB)2sin(A+B)

where Template:Mvar is any side of the triangle and Template:Math are the adjacent angles. Hence, for an obtuse triangle with acute angles Template:Mvar and Template:Mvar (and longest side Template:Mvar), the enclosing-ball slimness factor is:

π(cotA+cotB)2=πsin(A+B)2(sinA)(sinB)

Note that in a right triangle, sinC=sin(A+B)=1, so the two expressions coincide.

Two-balls slimness

The inradius Template:Mvar and the circumradius Template:Mvar are connected via a couple of formulae which provide two alternative expressions for the two-balls slimness of an acute triangle:[6]

Rr=14sinA2sinB2sinC2=1cosA+cosB+cosC1

For an obtuse triangle, Template:Math should be used instead of Template:Mvar. By the law of sines:

c2=RsinC

Hence the slimness factor of an obtuse triangle with obtuse angle Template:Mvar is:

c/2r=sinC4sinA2sinB2sinC2=sinCcosA+cosB+cosC1

Note that in a right triangle, sinC=1, so the two expressions coincide.

The two expressions can be combined in the following way to get a single expression for the two-balls slimness of any triangle with smaller angles Template:Mvar and Template:Mvar:

sinmax(A,B,C,π/2)4sinA2sinB2sinπAB2=sinmax(A,B,C,π/2)cosA+cosBcos(A+B)1

To get a feeling of the rate of change in fatness, consider what this formula gives for an isosceles triangle with head angle Template:Mvar [[Small-angle approximation|when Template:Mvar is small]]: sinmax(θ,π/2)4sin2πθ4sinθ2141/22θ/2=1θ


The following graphs show the 2-balls slimness factor of a triangle:

Fatness of circles, ellipses and their parts

The ball-based slimness of a circle is of course 1 - the smallest possible value.

For a circular segment with central angle Template:Mvar, the circumcircle diameter is the length of the chord and the incircle diameter is the height of the segment, so the two-balls slimness (and its approximation [[Small-angle approximation|when Template:Mvar is small]]) is: length of chordheight of segment=2Rsinθ2R(1cosθ2)=2sinθ2(1cosθ2)θθ2/8=8θ

For a circular sector with central angle Template:Mvar (when Template:Mvar is small), the circumcircle diameter is the radius of the circle and the incircle diameter is the chord length, so the two-balls slimness is: radius of circlelength of chord=R2Rsinθ2=12sinθ212θ/2=1θ

For an ellipse, the slimness factors are different in different locations. For example, consider an ellipse with short axis Template:Mvar and long axis Template:Mvar. the length of a chord ranges between 2asinθ2 at the narrow side of the ellipse and 2bsinθ2 at its wide side; similarly, the height of the segment ranges between b(1cosθ2) at the narrow side and a(1cosθ2) at its wide side. So the two-balls slimness ranges between: 2asinθ2b(1cosθ2)8abθ

and: 2bsinθ2a(1cosθ2)8baθ

In general, when the secant starts at angle Θ the slimness factor can be approximated by:[7]

2sinθ2(1cosθ2) (bacos2(Θ+θ2)+absin2(Θ+θ2))

Fatness of a convex polygon

A convex polygon is called Template:Mvar-separated if the angle between each pair of edges (not necessarily adjacent) is at least Template:Mvar.

Lemma: The enclosing-ball-slimness of an Template:Mvar-separated convex polygon is at most O(1/r).[8]Template:Rp

A convex polygon is called Template:Math-separated if:

  1. It does not have parallel edges, except maybe two horizontal and two vertical.
  2. Each non-axis-parallel edge makes an angle of at least Template:Mvar with any other edge, and with the Template:Mvar and Template:Mvar axes.
  3. If there are two horizontal edges, then diameter/height is at most Template:Mvar.
  4. If there are two vertical edges, then diameter/width is at most Template:Mvar.

Lemma: The enclosing-ball-slimness of a Template:Math-separated convex polygon is at most O(max(k,1/r)).[9] improve the upper bound to O(d).

Counting fat objects

If an object Template:Mvar has diameter Template:Math, then every ball enclosing Template:Mvar must have radius at least Template:Mvar and volume at least Vda. Hence, by definition of enclosing-ball-fatness, the volume of an Template:Mvar-fat object with diameter Template:Math must be at least VdadRd. Hence:

Lemma 1: Let Template:Math and Template:Math be two constants. Consider a collection of non-overlapping Template:Mvar-dimensional objects that are all globally Template:Mvar-fat (i.e. with enclosing-ball-slimness Template:Math). The number of such objects of diameter at least Template:Math, contained in a ball of radius Template:Mvar, is at most:

Vd(Ca)dVdadRd=(RC)d

For example (taking Template:Math, Template:Math and Template:Math): The number of non-overlapping disks with radius at least 1 contained in a circle of radius 3 is at most Template:Math. (Actually, it is at most 7).

If we consider local-fatness instead of global-fatness, we can get a stronger lemma:[3]

Lemma 2: Let Template:Math and Template:Math be two constants. Consider a collection of non-overlapping Template:Mvar-dimensional objects that are all locally Template:Mvar-fat (i.e. with local-enclosing-ball-slimness Template:Math). Let Template:Mvar be a single object in that collection with diameter Template:Math. Then the number of objects in the collection with diameter larger than Template:Math that lie within distance Template:Math from object Template:Mvar is at most:

(4R(C+1))d

For example (taking Template:Math, Template:Math and Template:Math): the number of non-overlapping disks with radius larger than 1 that touch a given unit disk is at most Template:Math (this is not a tight bound since in this case it is easy to prove an upper bound of 5).

Generalizations

The following generalization of fatness were studied by [2] for 2-dimensional objects.

A triangle Template:Math is a Template:Math-triangle of a planar object Template:Mvar (Template:Math, Template:Math), if Template:Math, each of the angles of Template:Math is at least Template:Mvar, and the length of each of its edges is at least Template:Math. An object Template:Mvar in the plane is Template:Math-covered if for each point Template:Math there exists a Template:Math-triangle Template:Math of Template:Mvar that contains Template:Mvar.

For convex objects, the two definitions are equivalent, in the sense that if Template:Mvar is Template:Mvar-fat, for some constant Template:Mvar, then it is also Template:Math-covered, for appropriate constants Template:Mvar and Template:Mvar, and vice versa. However, for non-convex objects the definition of being fat is more general than the definition of being Template:Math-covered.[2]

Applications

Fat objects are used in various problems, for example:

  • Motion planning - planning a path for a robot moving amidst obstacles becomes easier when the obstacles are fat objects.[3]
  • Fair cake-cutting - dividing a cake becomes more difficult when the pieces have to be fat objects. This requirement is common, for example, when the "cake" to be divided is a land-estate.[10]
  • More applications can be found in the references below.

References

Template:Reflist