/* --------------------------------------------------------------------------- * output of cursor position */ void ghid_set_cursor_position_labels (void) { gchar text[128]; if (Marked.status) {double scale, dx, dy, r, a; scale = Settings.grid_units_mm ? COOR_TO_MM: 1. / 100; dx = (Crosshair.X - Marked.X) * scale; dy = (Marked.Y - Crosshair.Y) * scale; r = sqrt( dx * dx + dy * dy); a = atan2(dy, dx) * 180 / M_PI; if (Settings.grid_units_mm) snprintf (text, sizeof (text), "r %-.4f; phi %-.1f; %-.4f %-.4f", r, a, dx, dy); else snprintf (text, sizeof (text), "r %-.2f; phi %-.1f; %-.2f %-.2f", r, a, dx, dy); ghid_cursor_position_relative_label_set_text (text); } else ghid_cursor_position_relative_label_set_text ("r __.__; phi __._; __.__ __.__"); if (Settings.grid_units_mm) snprintf (text, sizeof (text), "%-.4f %-.4f", COOR_TO_MM * Crosshair.X, COOR_TO_MM * Crosshair.Y); else snprintf (text, sizeof (text), "%-.2f %-.2f", Crosshair.X / 100., Crosshair.Y / 100.); ghid_cursor_position_label_set_text (text); }
/* --------------------------------------------------------------------------- * output of cursor position */ void ghid_set_cursor_position_labels (void) { gchar *text; if (Marked.status) { Coord dx = Crosshair.X - Marked.X; Coord dy = Crosshair.Y - Marked.Y; Coord r = Distance (Crosshair.X, Crosshair.Y, Marked.X, Marked.Y); double a = atan2 (dy, dx) * RAD_TO_DEG; text = pcb_g_strdup_printf (_("%m+r %-mS;\nphi %-.1f;\n%-mS %-mS"), Settings.grid_unit->allow, r, a, dx, dy); ghid_cursor_position_relative_label_set_text (text); g_free (text); } else ghid_cursor_position_relative_label_set_text (_("r __.__;\nphi __._;\n__.__ __.__")); text = pcb_g_strdup_printf (_("%m+%-mS %-mS"), Settings.grid_unit->allow, Crosshair.X, Crosshair.Y); ghid_cursor_position_label_set_text (text); g_free (text); }