Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/okkindel/hyperbolic

Poincare disk model on HTML5 canvas. Engine ready for development. It allows you to draw polygons, rotate them, move them, it also has a built-in tessellation demo.
https://github.com/okkindel/hyperbolic

canvas hyperbolic hyperbolic-geometry poincare-disk

Last synced: 3 days ago
JSON representation

Poincare disk model on HTML5 canvas. Engine ready for development. It allows you to draw polygons, rotate them, move them, it also has a built-in tessellation demo.

Awesome Lists containing this project

README

        

# Projekcja Poincaré na przestrzeni 2D

Geometrię hiperboliczną otrzymuje się z geometrii euklidesowej w wyniku zastąpienia pewnika o prostych równoległych następującym postulatem hiperbolicznym:

> „Przez dowolny punkt nieleżący na danej prostej przechodzą co najmniej dwie różne proste niemające wspólnych punktów z tą prostą”.

`https://pl.wikipedia.org/wiki/Geometria_hiperboliczna`

Narysujmy koło na płaszczyźnie euklidesowej. Wnętrze tego koła (ale nie samo koło) reprezentuje płaszczyznę hiperboliczną. Nie ma więc krawędzi, możemy iść bez końca coraz bliżej kręgu, ale nigdy go nie osiągać.

1. Punkty we wnętrzu koła są „punktami” w płaszczyźnie hiperbolicznej.

2. „Linie” w płaszczyźnie hiperbolicznej to albo euklidesowe średnice koła (linie przechodzące przez środek) minus ich punkty końcowe, albo koła euklidesowe, które przecinają główny okrąg pod kątem prostym.

3. W modelu kąty są zachowane, więc jeśli zmierzymy kąt za pomocą kątomierza, będzie on taki sam jak kąt hiperboliczny. Inaczej jest z długością. W miarę zbliżania się do krawędzi odległość euklidesowa maleje w porównaniu do odległości hiperbolicznej.

![canvas](./src/assets/img/hc_3.gif)
![canvas](./src/assets/img/hc_2.gif)
![canvas](./src/assets/img/hc_1.gif)
![canvas](./src/assets/img/hc_0.gif)