Fat object (geometry)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

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

[edit | edit source]

Given a constant R ≥ 1, an object o is called R-fat if its "slimness factor" is at most R. 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 o and the cubes are d-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 1/d 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

[edit | edit source]

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 1 × 1 square and a stick in the shape of a b × 1/b rectangle (with b > 1 > 1/b). As b increases, the area of the enclosing cube (b2) 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 1/b and length b, that is entirely folded within a square of side length 1. As b increases, the area of the enclosed cube (1/b2) 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 o is R-fat according to the two-balls/cubes definition, it is also R-fat according to the enclosing-ball/cube and enclosed-ball/cube definitions (but the opposite is not true, as exemplified above).

Balls vs. cubes

[edit | edit source]

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

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

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

For even dimensions (d = 2k), the factor simplifies to: πk2/k!2k. In particular, for two-dimensional shapes V2 = π 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 d-dimensional ball with radius a is enclosed in a d-dimensional cube with side-length 2a. Hence for every d-dimensional object:

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

For even dimensions (d = 2k), 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 R-fat object according to the either the two-balls or the two-cubes definition is at most Rd-fat according to the alternative definition.

Local fatness

[edit | edit source]

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 1 × 1 square and a stick in the shape of a 1 × 1/b rectangle (with b > 1 > 1/b). As b 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 (= 1 + 1/b). 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 o by considering the set B of all balls whose center is inside o and whose boundary intersects the boundary of o (i.e. not entirely containing o). 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 1 × 1/b stick, and it goes to ∞ as b grows. Thus by the local definition the above lollipop is not 2-fat.

Global vs. local definitions

[edit | edit source]

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 o and whose boundary touches the boundary of o. But every such enclosing ball b is in the set B 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 o be a convex object. Let P be a point in o. Let b and B be two balls centered at P such that b is smaller than B. Then o intersects a larger portion of b than of B, i.e.:

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

Proof sketch: standing at the point P, we can look at different angles θ and measure the distance to the boundary of o. Because o is convex, this distance is a function, say r(θ). 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 f(θ) ≥ F(θ). Thus the integral of f is at least the integral of F, and the lemma follows.

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

volume (b)Cddiameter (o)d

where Cd is some dimension-dependent constant.

The diameter of o is at most the diameter of the smallest ball enclosing o, 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

[edit | edit source]

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 * *
b × a rectangle with b > a 1+b2a2 ba π2(ab+ba)[3] ba 2baπ ba * *
disk 1 2 1 4π1.13 1 π21.25 * *
ellipse with radii b > a ba >ba ba >b2πa ba >πba * *
semi-ellipse with radii b > a, halved in parallel to b 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 b × a stick, b > 1 > a b+1 (b+1)2ab+1 ab+1 ba

Fatness of a triangle

[edit | edit source]

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

[edit | edit source]

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

Δ=r2(cotA2+cotB2+cotC2)

where Δ is the area of a triangle and r is the radius of the incircle. Hence, the enclosed-ball slimness of a triangle is:

cotA2+cotB2+cotC2π

Enclosing-ball slimness

[edit | edit source]

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 Δ is the area of a triangle and R 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 c is any side of the triangle and A, B are the adjacent angles. Hence, for an obtuse triangle with acute angles A and B (and longest side c), 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

[edit | edit source]

The inradius r and the circumradius R 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, c/2 should be used instead of R. By the law of sines:

c2=RsinC

Hence the slimness factor of an obtuse triangle with obtuse angle C 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 A and B:

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 θ when θ 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

[edit | edit source]

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

For a circular segment with central angle θ, 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 when θ 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 θ (when θ 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 a and long axis b. 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

[edit | edit source]

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

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

A convex polygon is called k,r-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 r with any other edge, and with the x and y axes.
  3. If there are two horizontal edges, then diameter/height is at most k.
  4. If there are two vertical edges, then diameter/width is at most k.

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

Counting fat objects

[edit | edit source]

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

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

Vd(Ca)dVdadRd=(RC)d

For example (taking d = 2, R = 1 and C = 3): The number of non-overlapping disks with radius at least 1 contained in a circle of radius 3 is at most 32 = 9. (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 R ≥ 1 and C ≥ 0 be two constants. Consider a collection of non-overlapping d-dimensional objects that are all locally R-fat (i.e. with local-enclosing-ball-slimness R). Let o be a single object in that collection with diameter 2a. Then the number of objects in the collection with diameter larger than 2a that lie within distance 2C⋅a from object o is at most:

(4R(C+1))d

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

Generalizations

[edit | edit source]

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

A triangle is a (β, δ)-triangle of a planar object o (0 < β ≤ π/3, 0 < δ < 1), if ∆ ⊆ o, each of the angles of is at least β, and the length of each of its edges is at least δ·diameter(o). An object o in the plane is (β, δ)-covered if for each point Po there exists a (β, δ)-triangle of o that contains P.

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

Applications

[edit | edit source]

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

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value)., Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  3. ^ a b c d e f Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value)., Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value)., Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value)., Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  7. ^ See graph at: https://www.desmos.com/calculator/fhfqju02sn
  8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).. Conference version: Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  10. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).