C# Class R3.Geometry.Banana

A helper class for doing proper calculations of H3 "bananas" Henry thought this out. His words: Take a pair of points giving the ends of the geodesic. If the points are in the ball model, move them to the UHS model. Find the endpoints of the geodesic through the two points on the z=0 plane in the UHS model. Apply the Mobius transform that takes the geodesic to the z-axis, and takes the first endpoint of the segment to height 1, and so the other to height h>1. The hyperbolic banana is a truncated cone in this configuration with axis the z-axis, truncated at 1 and h. The slope of the cone is the parameter for the thickness of the banana. Choose points for approximating the cone with polygons. We have some number of circles spaced vertically up the cone, and lines perpendicular to these circles that go through the origin. The intersections between the circles and the lines are our vertices. We want the lines with equal angle spacing around the z-axis, and the circles spaced exponentially up the z-axis, with one circle at 1 and one at h. Now map those vertices forward through all of our transformations.
Show file Open project: roice3/Honeycombs

Public Methods

Method Description
AddBanana ( Shapeways mesh, Vector3D e1, Vector3D e2, H3 settings ) : void

Add a finite (truncated) banana to our mesh. Passed in edge should be in Ball model.

AddIdealBanana ( Shapeways mesh, Vector3D e1, Vector3D e2, H3 settings ) : void

Add an ideal banana to our mesh. Passed in edge should be in Ball model.

Private Methods

Method Description
TakePointsBack ( Mesh mesh, Mobius m, H3 settings ) : void

Method Details

AddBanana() public static method

Add a finite (truncated) banana to our mesh. Passed in edge should be in Ball model.
public static AddBanana ( Shapeways mesh, Vector3D e1, Vector3D e2, H3 settings ) : void
mesh Shapeways
e1 Vector3D
e2 Vector3D
settings H3
return void

AddIdealBanana() public static method

Add an ideal banana to our mesh. Passed in edge should be in Ball model.
public static AddIdealBanana ( Shapeways mesh, Vector3D e1, Vector3D e2, H3 settings ) : void
mesh Shapeways
e1 Vector3D
e2 Vector3D
settings H3
return void