X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lab-lines.c;h=a0fc3c79a48141d09ded41e608db0dd0c9832c0b;hb=c343d14479295d517ae64ccee5a7e83d3ce0fc42;hp=35f9f457c53c3b9d7a9e53fe6a80ed20c0b23a2f;hpb=606e40439c8e4a36d81743a30fce8efb8baa9308;p=leo.git diff --git a/lab-lines.c b/lab-lines.c index 35f9f45..a0fc3c7 100644 --- a/lab-lines.c +++ b/lab-lines.c @@ -505,8 +505,18 @@ static void make_segments(void) rs->x2 = e->n2->o->x; rs->y2 = e->n2->o->y; - rs->slope = (rs->y2 - rs->y1) / (rs->x2 - rs->x1); - ((struct sym_text *) rs->label)->rotate = convert_to_deg(atan(rs->slope)); + if (fabs(rs->x2 - rs->x1) > 0.01) + { + rs->slope = (rs->y2 - rs->y1) / (rs->x2 - rs->x1); + // This works a little bit magically :) + // It's possible not to care about quadrants as it "just works" as expected + ((struct sym_text *) rs->label)->rotate = convert_to_deg(atan(rs->slope)); + } + else + { + rs->slope = 142; // Magic! + ((struct sym_text *) rs->label)->rotate = 1; + } struct variant *v = GARY_PUSH(rs->request.variants); make_bitmap(v, rs->label);