当前位置: 首页>>代码示例>>Java>>正文


Java CubicCurve2D.getPathIterator方法代码示例

本文整理汇总了Java中java.awt.geom.CubicCurve2D.getPathIterator方法的典型用法代码示例。如果您正苦于以下问题:Java CubicCurve2D.getPathIterator方法的具体用法?Java CubicCurve2D.getPathIterator怎么用?Java CubicCurve2D.getPathIterator使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在java.awt.geom.CubicCurve2D的用法示例。


在下文中一共展示了CubicCurve2D.getPathIterator方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: makeNoise

import java.awt.geom.CubicCurve2D; //导入方法依赖的package包/类
@Override
public void makeNoise(BufferedImage image) {
    int width = image.getWidth();
    int height = image.getHeight();

    // the curve from where the points are taken
    CubicCurve2D cc = new CubicCurve2D.Float(width * .1f, height * RAND.nextFloat(), width * .1f, height
            * RAND.nextFloat(), width * .25f, height * RAND.nextFloat(), width * .9f, height * RAND.nextFloat());

    // creates an iterator to define the boundary of the flattened curve
    PathIterator pi = cc.getPathIterator(null, 2);
    Point2D tmp[] = new Point2D[200];
    int i = 0;

    // while pi is iterating the curve, adds points to tmp array
    while (!pi.isDone()) {
        float[] coords = new float[6];
        switch (pi.currentSegment(coords)) {
        case PathIterator.SEG_MOVETO:
        case PathIterator.SEG_LINETO:
            tmp[i] = new Point2D.Float(coords[0], coords[1]);
        }
        i++;
        pi.next();
    }

    // the points where the line changes the stroke and direction
    Point2D[] pts = new Point2D[i];
    // copies points from tmp to pts
    System.arraycopy(tmp, 0, pts, 0, i);

    Graphics2D graph = (Graphics2D) image.getGraphics();
    graph.setRenderingHints(new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON));

    graph.setColor(_color);

    // for the maximum 3 point change the stroke and direction
    for (i = 0; i < pts.length - 1; i++) {
        if (i < 3) {
            graph.setStroke(new BasicStroke(_width));
        }
        graph.drawLine((int) pts[i].getX(), (int) pts[i].getY(), (int) pts[i + 1].getX(), (int) pts[i + 1].getY());
    }

    graph.dispose();
}
 
开发者ID:akuma,项目名称:meazza,代码行数:47,代码来源:CurvedLineNoiseProducer.java

示例2: makeNoise

import java.awt.geom.CubicCurve2D; //导入方法依赖的package包/类
/**
 * Draws a noise on the image. The noise curve depends on the factor values.
 * Noise won't be visible if all factors have the value > 1.0f
 * 
 * @param image
 *            the image to add the noise to
 * @param factorOne
 * @param factorTwo
 * @param factorThree
 * @param factorFour
 */
public void makeNoise(BufferedImage image, float factorOne,
		float factorTwo, float factorThree, float factorFour)
{
	Color color = getConfig().getNoiseColor();

	// image size
	int width = image.getWidth();
	int height = image.getHeight();

	// the points where the line changes the stroke and direction
	Point2D[] pts = null;
	Random rand = new Random();

	// the curve from where the points are taken
	CubicCurve2D cc = new CubicCurve2D.Float(width * factorOne, height
			* rand.nextFloat(), width * factorTwo, height
			* rand.nextFloat(), width * factorThree, height
			* rand.nextFloat(), width * factorFour, height
			* rand.nextFloat());

	// creates an iterator to define the boundary of the flattened curve
	PathIterator pi = cc.getPathIterator(null, 2);
	Point2D tmp[] = new Point2D[200];
	int i = 0;

	// while pi is iterating the curve, adds points to tmp array
	while (!pi.isDone())
	{
		float[] coords = new float[6];
		switch (pi.currentSegment(coords))
		{
			case PathIterator.SEG_MOVETO:
			case PathIterator.SEG_LINETO:
				tmp[i] = new Point2D.Float(coords[0], coords[1]);
		}
		i++;
		pi.next();
	}

	pts = new Point2D[i];
	System.arraycopy(tmp, 0, pts, 0, i);

	Graphics2D graph = (Graphics2D) image.getGraphics();
	graph.setRenderingHints(new RenderingHints(
			RenderingHints.KEY_ANTIALIASING,
			RenderingHints.VALUE_ANTIALIAS_ON));

	graph.setColor(color);

	// for the maximum 3 point change the stroke and direction
	for (i = 0; i < pts.length - 1; i++)
	{
		if (i < 3)
			graph.setStroke(new BasicStroke(0.9f * (4 - i)));
		graph.drawLine((int) pts[i].getX(), (int) pts[i].getY(),
				(int) pts[i + 1].getX(), (int) pts[i + 1].getY());
	}

	graph.dispose();
}
 
开发者ID:ycaihua,项目名称:kaptcha,代码行数:72,代码来源:DefaultNoise.java

示例3: makeNoise

import java.awt.geom.CubicCurve2D; //导入方法依赖的package包/类
@Override
public void makeNoise(BufferedImage image) {
    int width = image.getWidth();
    int height = image.getHeight();

    // the curve from where the points are taken
    CubicCurve2D cc = new CubicCurve2D.Float(width * .1f, height
            * RAND.nextFloat(), width * .1f, height
            * RAND.nextFloat(), width * .25f, height
            * RAND.nextFloat(), width * .9f, height
            * RAND.nextFloat());

    // creates an iterator to define the boundary of the flattened curve
    PathIterator pi = cc.getPathIterator(null, 2);
    Point2D tmp[] = new Point2D[200];
    int i = 0;

    // while pi is iterating the curve, adds points to tmp array
    while (!pi.isDone()) {
        float[] coords = new float[6];
        switch (pi.currentSegment(coords)) {
        case PathIterator.SEG_MOVETO:
        case PathIterator.SEG_LINETO:
            tmp[i] = new Point2D.Float(coords[0], coords[1]);
        }
        i++;
        pi.next();
    }

    // the points where the line changes the stroke and direction
    Point2D[] pts = new Point2D[i];
    // copies points from tmp to pts
    System.arraycopy(tmp, 0, pts, 0, i);

    Graphics2D graph = (Graphics2D) image.getGraphics();
    graph.setRenderingHints(new RenderingHints(
            RenderingHints.KEY_ANTIALIASING,
            RenderingHints.VALUE_ANTIALIAS_ON));

    graph.setColor(_color);

    // for the maximum 3 point change the stroke and direction
    for (i = 0; i < pts.length - 1; i++) {
        if (i < 3) {
        	graph.setStroke(new BasicStroke(_width));
        }
        graph.drawLine((int) pts[i].getX(), (int) pts[i].getY(),
                (int) pts[i + 1].getX(), (int) pts[i + 1].getY());
    }

    graph.dispose();
}
 
开发者ID:rookiefly,项目名称:simplecaptcha,代码行数:53,代码来源:CurvedLineNoiseProducer.java


注:本文中的java.awt.geom.CubicCurve2D.getPathIterator方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。