本文整理汇总了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();
}
示例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();
}
示例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();
}