oregon state university computer...

3
1 Hyperbolic Geometry for Visualization Mike Bailey [email protected] mjb – February 16, 2011 Oregon State University Computer Graphics Oregon State University 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 mjb – February 16, 2011 Oregon State University Computer Graphics Usual Zooming in Euclidean Space mjb – February 16, 2011 Oregon State University Computer Graphics 123,101 line strips 446,585 points Zooming in Polar Hyperbolic Space mjb – February 16, 2011 Oregon State University Computer Graphics Polar Hyperbolic Equations (X Y) R R’ = R / (R+K) X’ = R’cosΘY’ R’ i ΘOverall theme: something divided by something a little bigger mjb – February 16, 2011 Oregon State University Computer Graphics (X,Y) Θ Θ’ = Θ Y’ = R’sinΘ1 ' lim 0 R K 0 ' lim R K then: ' R R R K Because Y X R 2 2 ) ( tan 1 X Y R R ' Polar Hyperbolic Equations Don’t Actually Need to use Trig Coordinates moved to outer edge when K = 0 mjb – February 16, 2011 Oregon State University Computer Graphics K R K R X R X K R R R X cos ' ' ' 'sin R Y Y Y R R K R R K Coordinates moved to center when K =

Upload: vanminh

Post on 07-Jul-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

1

Hyperbolic Geometry for Visualization

Mike [email protected]

mjb – February 16, 2011

Oregon State UniversityComputer Graphics

Oregon State University

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

mjb – February 16, 2011

Oregon State UniversityComputer Graphics

Usual Zooming in Euclidean Space

mjb – February 16, 2011

Oregon State UniversityComputer Graphics

123,101 line strips446,585 points

Zooming in Polar Hyperbolic Space

mjb – February 16, 2011

Oregon State UniversityComputer Graphics

Polar Hyperbolic Equations

(X Y)

R R’ = R / (R+K)

X’ = R’cosΘ’Y’ R’ i Θ’

Overall theme: something divided by something a little bigger

mjb – February 16, 2011

Oregon State UniversityComputer Graphics

(X,Y)

Θ Θ’ = Θ

Y’ = R’sinΘ’

1'lim0

RK

0'lim

RK

then:'R

RR K

Because

YXR 22

)(tan1

X

Y

RR '

Polar Hyperbolic Equations Don’t Actually Need to use Trig

Coordinates moved to outer edge when K = 0

mjb – February 16, 2011

Oregon State UniversityComputer Graphics

KR

KR

X

R

X

KR

RRX

cos''

' 'sinR Y Y

Y RR K R R K

Coordinates moved to center when K = ∞

2

KR

XX

'

Cartesian Hyperbolic Equations – Treat X and Y Independently

KR

YY

'{Polar

mjb – February 16, 2011

Oregon State UniversityComputer Graphics

KX

XX

22'

KY

YY

22'

{Cartesian

Coordinates moved to outer edge when K = 0

Coordinates moved to center when K = ∞

Zooming in Cartesian Hyperbolic Space

mjb – February 16, 2011

Oregon State UniversityComputer Graphics

The Problem with T-Intersections

mjb – February 16, 2011

Oregon State UniversityComputer Graphics

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.

mjb – February 16, 2011

Oregon State UniversityComputer Graphics

This kind of situation is called a T-intersection, and crops up all the time in computer graphics.

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.

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

mjb – February 16, 2011

Oregon State UniversityComputer Graphics

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

A More Elegant Approach is to Recursively Subdivide

voidDrawHyperbolicLine( 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

0 1

2.

P PA

0 1' ''

2.

P PB

mjb – February 16, 2011

Oregon State UniversityComputer Graphics

Compare A and Bif( they are “close enough” ){

Draw the line P0’-P1’}else{

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

}}

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

3

Hyperbolic Corvallis (Streets, Buildings, Parks)

Kelley Engineering

Center

mjb – February 16, 2011

Oregon State UniversityComputer Graphics

mjb – February 16, 2011

Oregon State UniversityComputer Graphics

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