1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2026-02-27 02:19:44 +00:00

Joukowsky transform, and better inverted Poincare

This commit is contained in:
Zeno Rogue
2018-10-25 02:44:35 +02:00
parent b44063f500
commit cbb53cfe68
5 changed files with 84 additions and 57 deletions

View File

@@ -406,6 +406,25 @@ void applymodel(hyperpoint H, hyperpoint& ret) {
return;
}
if(among(pmodel, mdJoukowsky, mdJoukowskyInverted)) {
ld x0, y0;
x0 = H[0] / tz;
y0 = H[1] / tz;
ld r = hypot(x0, y0);
ld c = x0 / r;
ld s = y0 / r;
ret[0] = (r + 1/r) * c / 2;
ret[1] = (r - 1/r) * s / 2;
ret[2] = 0;
if(pmodel == mdJoukowskyInverted) {
ld r2 = sqhypot2(ret);
ret[0] = ret[0] / r2;
ret[1] = -ret[1] / r2;
}
ghcheck(ret,H);
return;
}
if(pmodel == mdHalfplane) {
// Poincare to half-plane