/* * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions.
*/
/** * @test * @bug 8144718 * @summary Check the Stroker.drawBezApproxForArc() bug (stoke with round * joins): if cosext2 > 0.5, it generates curves with NaN coordinates * @run main TextClipErrorTest
*/ publicclass TextClipErrorTest {
finalint len = 32; final ArrayList<Integer> typeList = new ArrayList<Integer>(len); final ArrayList<double[]> coordsList = new ArrayList<double[]>(len);
for (PathIterator pi = shape.getPathIterator(null);
!pi.isDone(); pi.next())
{ switch (pi.currentSegment(coords)) { case SEG_MOVETO:
typeList.add(SEG_MOVETO);
coordsList.add(Arrays.copyOf(coords, 2)); break; case SEG_LINETO:
typeList.add(SEG_LINETO);
coordsList.add(Arrays.copyOf(coords, 2)); break; case SEG_QUADTO:
typeList.add(SEG_QUADTO);
coordsList.add(Arrays.copyOf(coords, 4)); break; case SEG_CUBICTO:
typeList.add(SEG_CUBICTO);
coordsList.add(Arrays.copyOf(coords, 6)); break; case SEG_CLOSE:
typeList.add(SEG_CLOSE);
coordsList.add(null); break; default:
}
}
final StringBuilder sb = new StringBuilder(1024); // types:
sb.append("private static final int[] SHAPE_TYPES = new int[]{\n"); for (Integer i : typeList) {
sb.append(i).append(",\n");
}
sb.append("};\n");
// coords:
sb.append("private static final double[][] SHAPE_COORDS = new double[][]{\n"); for (double[] c : coordsList) { if (c == null) {
sb.append("null,\n");
} else {
sb.append("new double[]{"); for (int i = 0; i < c.length; i++) {
sb.append(c[i]).append(",");
}
sb.append("},\n");
}
}
sb.append("};\n");
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.