/*************************************************************************************/ /* Definition einer Dithermatrix mit Routinen dafuer */ /*************************************************************************************/ private static final int DITHER_DIM = 8; // 8x8-Dithermatrix private static final int[][] dit_mat = { { 0,32, 8,40, 2,34,10,42}, // 64-elementige Dithermatrix: {48,16,56,24,50,18,58,26}, // Bei Grauwert k werden alle {12,44, 4,36,14,46, 6,38}, // Pixel i,j auf schwarz {60,28,52,20,62,30,54,22}, // gesetzt, fuer die gilt: { 3,35,11,43, 1,33, 9,41}, // dit_mat[i%8,j%8] < k {51,19,59,27,49,17,57,25}, {15,47, 7,39,13,45, 5,37}, {63,31,55,23,61,29,53,21} }; boolean kleiner_schwelle( // testet die Dither-Matrix Point p ) // bezueglich des Punktes { int x = p.x; int y = p.y; if (x<0) x=DITHER_DIM - (Math.abs(x)%DITHER_DIM); // falls x negativ if (y<0) y=DITHER_DIM - (Math.abs(y)%DITHER_DIM); // falls y negativ return (dit_mat[x%DITHER_DIM][y%DITHER_DIM] < schwelle); } int grauwert( // liefert den Grauwert int i, int j ) // an Position i, j { return(dit_mat[i][j]); } |