• date post

31-Jan-2021
• Category

## Documents

• view

0

0

Embed Size (px)

### Transcript of Hyperbolic Geometry for mjb/cs553/Handouts/hyperbolic... 1 mjb –February 28, 2019 Computer...

• 1

mjb – February 28, 2019 Computer Graphics

1

Hyperbolic Geometry for Visualization

hyperbolic.ppts

Mike Bailey [email protected]

mjb – February 28, 2019 Computer Graphics

2 Zooming and Panning Around a Complex 2D Display

• Standard (Euclidean) geometry zooming forces much of the information off the screen

• This eliminates the context from the zoomed-in display

• This problem can be solved with hyperbolic methods if we are willing to give up Euclidean geometry

• 2

mjb – February 28, 2019 Computer Graphics

3 Usual Zooming in Euclidean Space

123,101 line strips 446,585 points

mjb – February 28, 2019 Computer Graphics

4 Zooming in Polar Hyperbolic Space

• 3

mjb – February 28, 2019 Computer Graphics

5 Polar Hyperbolic Equations

(X,Y)

R

Θ

R’ = R / (R+K)

Θ’ = Θ

X’ = R’cosΘ’ Y’ = R’sinΘ’

Overall theme: something divided by something else a little bigger

1'lim 0

 

R K

0'lim  

R K

then:' RR

R K 

 Because

mjb – February 28, 2019 Computer Graphics

6

YXR 22 

)(tan 1 X Y

KR RR 

'

KR X

R X

KR RRX

 

  cos''

' 'sin R Y YY R R K R R K

      

Polar Hyperbolic Equations Don’t Actually Need to use Trig

Coordinates moved to outer edge when K = 0

Coordinates moved to center when K = ∞

• 4

mjb – February 28, 2019 Computer Graphics

7

KR XX 

'

Cartesian Hyperbolic Equations – Treat X and Y Independently

KR YY 

'

KX

XX 22

' 

KY

YY 22

' 

{ {Polar

Cartesian

Coordinates moved to outer edge when K = 0

Coordinates moved to center when K = ∞

mjb – February 28, 2019 Computer Graphics

8 Zooming in Cartesian Hyperbolic Space

• 5

mjb – February 28, 2019 Computer Graphics

9 The Problem with T-Intersections

mjb – February 28, 2019 Computer Graphics

10 The Problem with T-Intersections

Your code computes the hyperbolic transformation here and here, and OpenGL draws a straight line between them. But, this point had its hyperbolic transformation computed separately, and doesn’t match up with the straight line.

This kind of situation is called a T-intersection, and crops up all the time in computer graphics, even though we don’t want it to. 

• 6

mjb – February 28, 2019 Computer Graphics

11 A Solution to the T-Intersection Problem

Break this line up into several (many?) sub-pieces, and perform the Hyperbolic Transformation on each intermediate point.

This makes that straight line into a curve, as it should be. But, how many line segments should we use?

0 1( ) (1 )P t t P tP   t = 0., .01, .02, .03, …

mjb – February 28, 2019 Computer Graphics

12 A More Elegant Approach is to Recursively Subdivide

void DrawHyperbolicLine( P0, P1 ) {

Compute point

Convert point A to Hyperbolic Coordinates, calling it A’

Convert P0 and P1 to Hyperbolic Coordinates P0’, P1’

Compute point

Compare A’ and B if( they are “close enough” ) {

Draw the line P0’-P1’ } else {

DrawHyperbolicLine( P0, A ); DrawHyperbolicLine( A, P1 );

} }

0 1

2. P PA 

0 1' '' 2.

P PB 

Subdividing to render a curve or surface correctly is a recurring theme in computer graphics.

• 7

mjb – February 28, 2019 Computer Graphics

13Hyperbolic Corvallis (Streets, Buildings, Parks)

Kelley Engineering

Center

mjb – February 28, 2019 Computer Graphics

14

http://www.sott.net/articles/show/215021-Hyperbolic-map-of-the-internet-will-save-it-from-COLLAPSE