* # # . . / # / . . . # # . \ # \
* # # . . # / . . . . # # . . \ #
*
- * The position of the lines is such that on a long diagonal line, the
- * amount of filled space is the same as in the rounded bitmap. There
- * are a few additional complications, in that the trimming of filled
- * pixels can leave odd gaps where a diagonal stem joins another one,
- * so the code detects this and doesn't trim in these cases:
+ * The position of the lines is such that the diagonal stroke is the
+ * same width as a horizontal or vertical stroke (assuming square
+ * pixels). There are a few additional complications, in that the
+ * trimming of filled pixels can leave odd gaps where a diagonal stem
+ * joins another one, so the code detects this and doesn't trim in
+ * these cases:
*
* . # # -> . . # # # # -> . . / # # # -> . . / # # #
* # . . . . # # # # . / # / # # . / # # # #
#define YSCALE ((double)YPIX_S / (double)YPIX)
/* Position of diagonal lines within pixels */
-#define XQTR_S (XPIX_S/4)
-#define YQTR_S (YPIX_S/4)
+/* 29 is approximately 100 * (1-1/sqrt(2)) */
+#define XQTR_S 29
+#define YQTR_S 29
static void dochar(char const data[YSIZE], unsigned flags);
static void dochar_plotter(char const data[YSIZE], unsigned flags);