- #1
Smed
- 36
- 1
- TL;DR Summary
- How do you draw a 2D pattern of a 3D spherical lune?
I ultimately want to make a sewing pattern of a ball. If I have an n-hosohedra, how do I figure out the equation of the curves that make up each lune in 2D?
andrewkirk said:The base of the k-th segment is the same length as one side of a regular n-sided polygon with radius (distance from centre to any vertex) equal to the radius of the cross section of the sphere that lies in plane .
It wouldn't be a polynomial, but it is easy enough to find an equation for the curve - and there is probably a name for it but I can't put my finger on it at the moment. I'll have a look when I have pencil and paper in front of me later.Smed said:I'm surprised there isn't a known polynomial equation that describes these shapes.
andrewkirk said:The base of the k-th segment is the same length as one side of a regular n-sided polygon with radius (distance from centre to any vertex) equal to the radius of the cross section of the sphere that lies in plane ##P_{k}##.
No, that's not right - the point I think we are missing is that the length of the curved edge must be the semi-circumference of the sphere, not the centre of the piece (which is going to need to stretch). This makes it harder...pbuk said:It wouldn't be a polynomial, but it is easy enough to find an equation for the curve - and there is probably a name for it but I can't put my finger on it at the moment. I'll have a look when I have pencil and paper in front of me later.
The key is this:
Here are pictures to help, made to scale. In the filenames the first number is the number of lunes and the second is the number of segments in each hemisphere of a lune (so each lune has twice that number of segments). In case the file names aren't visible, the diagrams are for a four-lune and a twelve-lune ball. In each case, a lune is shown with 1, 2, 3 and 10 polygonal segments in each hemisphere. The 10-segment lune looks indistinguishable from a smooth curve, to my fuzzy eyes at least!Smed said:I'm having a bit of difficulty following how each trapezoid will change its shape as you approach the equator.
This should give you a clue that your pieces are too high - obviously a regular octahedron would be a better approximation to a sphere.andrewkirk said:By the way, lunes like in the first diagram lune.4.1 would make an octahedron - one of the five platonic solids - although this octahedron is not regular.
We cannot get anything exactly right, because we are using flat fabric pieces to approximate a surface that is nowhere flat. But we can approximate the shape. The higher the values we take for the two parameters I specified in my first post, the closer the approximation will be. The limit of the angle sum at the pole, as both n and m approach infinity, will be 360 degrees. But in fact it will come very close even for quite modest values of those parameters. Similarly, the angle at the midpoint approaches 180 degrees (straight) as m (the number of segments in half a lune) approaches infinity.pbuk said:In order to get as smooth a 3D shape as possible, there are two important things to get exactly right:
- the angles at the top of the pieces must add up to 360°
- there must be no angle at the mid point
That's an excellent observation. It made me realize I got the horizontal scale wrong in the diagrams. The shape is indeed a regular octahedron. I've redone the diagrams with the scale corrected, and replaced the ones in my post above.pbuk said:your pieces are too high ... a regular octahedron would be a better approximation to a sphere.
n.lat.rng <- c(1, 2, 3, 10)
# c(5,10,20, 50) # number of latitudinal segments per hemisphere - span pi / 2
n.long.rng <- c(4, 12) # number of lunes (around the equator - span 2 pi)
r <- 1
setwd('/media/data/temp')
cols <- rep('black', 100)
#cols <- c('blue', 'green', 'red', 'black')
for (n.long in n.long.rng){
for (i in 1:length (n.lat.rng)){
png(paste('lune.', n.long, '.', n.lat.rng[i], '.png', sep = '' ))
lats <- pi * (seq(0, 1, 1/(2 * n.lat.rng[i])) - 0.5)
dr <- r * diff(cos(lats)) * cos(pi / n.long)
dz <- r * diff(sin(lats))
dh <- sqrt(dz^2 + dr^2)
x <- c(0, cumsum(dh))
y1 <- r * cos(lats) * sin(pi / n.long)
plot(x = range(x), y = 1.1 * max(y1) * c(-1, 1), type = 'n',pty = 's', asp = 1, xlab = '', ylab = '')
lines(x, y1, col = cols[i])
lines(x, -y1, col = cols[i])
for (j in 1:length(x))
lines(x = rep(x[j], 2), y = c(-1,1) * y1[j])
dev.off()
}
}
I am talking about the 2d curve of the edge of the fabric, not the 3d shape the piece adopts when stretched.andrewkirk said:We cannot get anything exactly right, because we are using flat fabric pieces to approximate a surface that is nowhere flat.
Agreed, in the limit you have specified (almost) the right curve.andrewkirk said:But we can approximate the shape. The higher the values we take for the two parameters I specified in my first post, the closer the approximation will be. The limit of the angle sum at the pole, as both n and m approach infinity, will be 360 degrees.
I'm afraid four-lune balls are very common as I wrote in #3; here is a picture of one:andrewkirk said:Naturally the case with four lunes, each of only two segments - the octahedron - is a poor approximation. Nobody would suggest using only four lunes, or only two segments. The purpose of including those drawings was to demonstrate how quickly the approximation improves as we increase the number of segments, and also because it makes it easier to conceptualise the shape of the segments.
I think that is nearly right - only nearly because the elevation you have taken is transformed when the material stretches. I think in order to take that stretch into account you need to use the length of the edge of the curve at that latitude.andrewkirk said:In drawing the diagrams I used the following equation for the distance to the lune outline from its centre line:
$$r \cos \theta\sin(\pi/n)$$
where ##\theta## is the elevation of the point above the equatorial plane and n is the number of lunes. That is half the length of an edge of the regular n-gon inscribed in the latitudinal circle at latitude ##\theta##.
But we haven't got cling film shrinking onto a wire frame, we have got material stretching outwards under pressure.andrewkirk said:It's what we'd get if we made a spiky ball of radial wires going from the centre of a sphere to those points, and covered it with cling wrap that was strong enough not to be pierced by the ends of the wires.
To draw a spherical lune in 2D, you will need to first understand the concept of a lune. A lune is a curved shape formed by two intersecting arcs on a sphere. To draw a lune in 2D, you will need to project the arcs onto a flat surface, such as a piece of paper, using a specific projection method. This method will depend on the type of lune you want to draw, such as a spherical cap lune or a spherical zone lune. Once you have projected the arcs onto the paper, you can use a compass and ruler to draw the lune.
The purpose of drawing a spherical lune in 2D is to visualize and understand the geometry of a lune on a sphere. This can be useful in various fields such as astronomy, geology, and mathematics. Drawing a lune in 2D can also help in solving problems and making calculations involving spherical geometry.
Yes, a spherical lune can be accurately drawn in 2D. However, it is important to note that the projection method used may introduce some distortions. To minimize these distortions, it is recommended to use a projection method that preserves angles and distances as much as possible.
Yes, there are some limitations to drawing spherical lunes in 2D. One limitation is that the lune may appear distorted due to the projection method used. Another limitation is that it may be difficult to accurately measure the angles and distances on the 2D drawing, as they are projected from a curved surface. Additionally, some lunes may be impossible to draw accurately in 2D, such as a lune with a very small or large angle.
Drawing spherical lunes in 2D has various real-world applications. In astronomy, it can be used to visualize and understand the movements of celestial bodies on a spherical surface. In geology, it can aid in understanding the formation of geological structures on a spherical planet. In mathematics, it can be used to solve problems involving spherical geometry. Additionally, drawing spherical lunes in 2D can also be used in cartography to create accurate maps of the Earth's surface.