diff --git a/hypgraph.cpp b/hypgraph.cpp index 2c5e8558..8a2b0d27 100644 --- a/hypgraph.cpp +++ b/hypgraph.cpp @@ -2563,27 +2563,27 @@ struct flat_model_enabler { }; #endif -EX transmatrix atscreenpos(ld x, ld y, ld size) { +EX transmatrix atscreenpos(ld x, ld y) { transmatrix V = Id; if(pmodel == mdPixel) { V[0][3] += (x - current_display->xcenter); V[1][3] += (y - current_display->ycenter); - V[0][0] = size * 2 * cgi.hcrossf / cgi.crossf; - V[1][1] = size * 2 * cgi.hcrossf / cgi.crossf; + V[0][0] = 1; + V[1][1] = 1; if(WDIM == 3) V[2][2] = -1; } else if(pmodel == mdHorocyclic) { V[0][3] += (x - current_display->xcenter) * 2 / current_display->radius; V[1][3] += (y - current_display->ycenter) * 2/ current_display->radius; - V[0][0] = size * 2 / current_display->radius; - V[1][1] = size * 2 / current_display->radius; + V[0][0] = 1; + V[1][1] = 1; } else { V[0][2] += (x - current_display->xcenter); V[1][2] += (y - current_display->ycenter); - V[0][0] = size * 2 * cgi.hcrossf / cgi.crossf; - V[1][1] = size * 2 * cgi.hcrossf / cgi.crossf; + V[0][0] = 1; + V[1][1] = 1; V[2][2] = current_display->radius; if(S3 >= OINF) V[0][0] /= 5, V[1][1] /= 5; } @@ -2591,6 +2591,14 @@ EX transmatrix atscreenpos(ld x, ld y, ld size) { return V; } +EX transmatrix atscreenpos(ld x, ld y, ld size) { + transmatrix V = atscreenpos(x, y); + ld s = size * 2 * cgi.hcrossf / cgi.crossf; + V[0][0] *= s; + V[1][1] *= s; + return V; + } + void circle_around_center(ld radius, color_t linecol, color_t fillcol, PPR prio) { #if CAP_QUEUE if(among(pmodel, mdDisk, mdEquiarea, mdEquidistant, mdFisheye, mdFisheye2) && !(pmodel == mdDisk && hyperbolic && pconf.alpha <= -1) && models::camera_straight) {