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


Java RadialGradientPaint.getColorSpace方法代码示例

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


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

示例1: darkerRadialGradientPaint

import java.awt.RadialGradientPaint; //导入方法依赖的package包/类
/**
 * Create a new Gradient with its colours darkened.
 *
 * @param paint a <code>RadialGradientPaint</code>
 *
 * @return a darker version of the <code>RadialGradientPaint</code>
 */
private static Paint darkerRadialGradientPaint(RadialGradientPaint paint) {
    final Color[] paintColors = paint.getColors();
    for (int i = 0; i < paintColors.length; i++) {
        paintColors[i] = darker(paintColors[i]);
    }
    return new RadialGradientPaint(paint.getCenterPoint(), 
            paint.getRadius(), paint.getFocusPoint(), 
            paint.getFractions(), paintColors, paint.getCycleMethod(),
            paint.getColorSpace(), paint.getTransform());
}
 
开发者ID:mdzio,项目名称:ccu-historian,代码行数:18,代码来源:PaintAlpha.java

示例2: darkerRadialGradientPaint

import java.awt.RadialGradientPaint; //导入方法依赖的package包/类
/**
 * Create a new Gradient with its colours darkened.
 *
 * @param paint a {@code RadialGradientPaint}
 *
 * @return a darker version of the {@code RadialGradientPaint}
 */
private static Paint darkerRadialGradientPaint(RadialGradientPaint paint) {
    final Color[] paintColors = paint.getColors();
    for (int i = 0; i < paintColors.length; i++) {
        paintColors[i] = darker(paintColors[i]);
    }
    return new RadialGradientPaint(paint.getCenterPoint(), 
            paint.getRadius(), paint.getFocusPoint(), 
            paint.getFractions(), paintColors, paint.getCycleMethod(),
            paint.getColorSpace(), paint.getTransform());
}
 
开发者ID:jfree,项目名称:jfreechart,代码行数:18,代码来源:PaintAlpha.java

示例3: setRadialGradientPaint

import java.awt.RadialGradientPaint; //导入方法依赖的package包/类
/**
 * This method calculates six m** values and a focusX value that
 * are used by the native fragment shader.  These techniques are
 * based on a whitepaper by Daniel Rice on radial gradient performance
 * (attached to the bug report for 6521533).  One can refer to that
 * document for the complete set of formulas and calculations, but
 * the basic goal is to compose a transform that will convert an
 * (x,y) position in device space into a "u" value that represents
 * the relative distance to the gradient focus point.  The resulting
 * value can be used to look up the appropriate color by linearly
 * interpolating between the two nearest colors in the gradient.
 */
private static void setRadialGradientPaint(RenderQueue rq,
                                           SunGraphics2D sg2d,
                                           RadialGradientPaint paint,
                                           boolean useMask)
{
    boolean linear =
        (paint.getColorSpace() == ColorSpaceType.LINEAR_RGB);
    int cycleMethod = paint.getCycleMethod().ordinal();
    float[] fractions = paint.getFractions();
    Color[] colors = paint.getColors();
    int numStops = colors.length;
    int[] pixels = convertToIntArgbPrePixels(colors, linear);
    Point2D center = paint.getCenterPoint();
    Point2D focus = paint.getFocusPoint();
    float radius = paint.getRadius();

    // save original (untransformed) center and focus points
    double cx = center.getX();
    double cy = center.getY();
    double fx = focus.getX();
    double fy = focus.getY();

    // transform from gradient coords to device coords
    AffineTransform at = paint.getTransform();
    at.preConcatenate(sg2d.transform);
    focus = at.transform(focus, focus);

    // transform unit circle to gradient coords; we start with the
    // unit circle (center=(0,0), focus on positive x-axis, radius=1)
    // and then transform into gradient space
    at.translate(cx, cy);
    at.rotate(fx - cx, fy - cy);
    at.scale(radius, radius);

    // invert to get mapping from device coords to unit circle
    try {
        at.invert();
    } catch (Exception e) {
        at.setToScale(0.0, 0.0);
    }
    focus = at.transform(focus, focus);

    // clamp the focus point so that it does not rest on, or outside
    // of, the circumference of the gradient circle
    fx = Math.min(focus.getX(), 0.99);

    // assert rq.lock.isHeldByCurrentThread();
    rq.ensureCapacity(20 + 28 + (numStops*4*2));
    RenderBuffer buf = rq.getBuffer();
    buf.putInt(SET_RADIAL_GRADIENT_PAINT);
    buf.putInt(useMask ? 1 : 0);
    buf.putInt(linear  ? 1 : 0);
    buf.putInt(numStops);
    buf.putInt(cycleMethod);
    buf.putFloat((float)at.getScaleX());
    buf.putFloat((float)at.getShearX());
    buf.putFloat((float)at.getTranslateX());
    buf.putFloat((float)at.getShearY());
    buf.putFloat((float)at.getScaleY());
    buf.putFloat((float)at.getTranslateY());
    buf.putFloat((float)fx);
    buf.put(fractions);
    buf.put(pixels);
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:77,代码来源:BufferedPaints.java

示例4: equal

import java.awt.RadialGradientPaint; //导入方法依赖的package包/类
/**
 * Returns {@code true} if the two {@code Paint} objects are equal 
 * OR both {@code null}.  This method handles
 * {@code GradientPaint}, {@code LinearGradientPaint} and 
 * {@code RadialGradientPaint} as a special cases, since those classes do
 * not override the {@code equals()} method.
 *
 * @param p1  paint 1 ({@code null} permitted).
 * @param p2  paint 2 ({@code null} permitted).
 *
 * @return A boolean.
 */
public static boolean equal(Paint p1, Paint p2) {
    if (p1 == p2) {
        return true;
    }
        
    // handle cases where either or both arguments are null
    if (p1 == null) {
        return (p2 == null);   
    }
    if (p2 == null) {
        return false;   
    }

    // handle GradientPaint as a special case...
    if (p1 instanceof GradientPaint && p2 instanceof GradientPaint) {
        GradientPaint gp1 = (GradientPaint) p1;
        GradientPaint gp2 = (GradientPaint) p2;
        return gp1.getColor1().equals(gp2.getColor1()) 
                && gp1.getColor2().equals(gp2.getColor2())
                && gp1.getPoint1().equals(gp2.getPoint1())    
                && gp1.getPoint2().equals(gp2.getPoint2())
                && gp1.isCyclic() == gp2.isCyclic()
                && gp1.getTransparency() == gp1.getTransparency(); 
    } else if (p1 instanceof LinearGradientPaint 
            && p2 instanceof LinearGradientPaint) {
        LinearGradientPaint lgp1 = (LinearGradientPaint) p1;
        LinearGradientPaint lgp2 = (LinearGradientPaint) p2;
        return lgp1.getStartPoint().equals(lgp2.getStartPoint())
                && lgp1.getEndPoint().equals(lgp2.getEndPoint()) 
                && Arrays.equals(lgp1.getFractions(), lgp2.getFractions())
                && Arrays.equals(lgp1.getColors(), lgp2.getColors())
                && lgp1.getCycleMethod() == lgp2.getCycleMethod()
                && lgp1.getColorSpace() == lgp2.getColorSpace()
                && lgp1.getTransform().equals(lgp2.getTransform());
    } else if (p1 instanceof RadialGradientPaint 
            && p2 instanceof RadialGradientPaint) {
        RadialGradientPaint rgp1 = (RadialGradientPaint) p1;
        RadialGradientPaint rgp2 = (RadialGradientPaint) p2;
        return rgp1.getCenterPoint().equals(rgp2.getCenterPoint())
                && rgp1.getRadius() == rgp2.getRadius() 
                && rgp1.getFocusPoint().equals(rgp2.getFocusPoint())
                && Arrays.equals(rgp1.getFractions(), rgp2.getFractions())
                && Arrays.equals(rgp1.getColors(), rgp2.getColors())
                && rgp1.getCycleMethod() == rgp2.getCycleMethod()
                && rgp1.getColorSpace() == rgp2.getColorSpace()
                && rgp1.getTransform().equals(rgp2.getTransform());
    } else {
        return p1.equals(p2);
    }
}
 
开发者ID:jfree,项目名称:jfreechart,代码行数:63,代码来源:PaintUtils.java

示例5: paintsAreEqual

import java.awt.RadialGradientPaint; //导入方法依赖的package包/类
/**
 * Returns {@code true} if the two {@code Paint} objects are equal 
 * OR both {@code null}.  This method handles
 * {@code GradientPaint}, {@code LinearGradientPaint} 
 * and {@code RadialGradientPaint} as special cases, since those classes do
 * not override the {@code equals()} method.
 *
 * @param p1  paint 1 ({@code null} permitted).
 * @param p2  paint 2 ({@code null} permitted).
 *
 * @return A boolean.
 */
private static boolean paintsAreEqual(Paint p1, Paint p2) {
    if (p1 == p2) {
        return true;
    }
        
    // handle cases where either or both arguments are null
    if (p1 == null) {
        return (p2 == null);   
    }
    if (p2 == null) {
        return false;   
    }

    // handle cases...
    if (p1 instanceof Color && p2 instanceof Color) {
        return p1.equals(p2);
    }
    if (p1 instanceof GradientPaint && p2 instanceof GradientPaint) {
        GradientPaint gp1 = (GradientPaint) p1;
        GradientPaint gp2 = (GradientPaint) p2;
        return gp1.getColor1().equals(gp2.getColor1()) 
                && gp1.getColor2().equals(gp2.getColor2())
                && gp1.getPoint1().equals(gp2.getPoint1())    
                && gp1.getPoint2().equals(gp2.getPoint2())
                && gp1.isCyclic() == gp2.isCyclic()
                && gp1.getTransparency() == gp1.getTransparency(); 
    } 
    if (p1 instanceof LinearGradientPaint 
            && p2 instanceof LinearGradientPaint) {
        LinearGradientPaint lgp1 = (LinearGradientPaint) p1;
        LinearGradientPaint lgp2 = (LinearGradientPaint) p2;
        return lgp1.getStartPoint().equals(lgp2.getStartPoint())
                && lgp1.getEndPoint().equals(lgp2.getEndPoint()) 
                && Arrays.equals(lgp1.getFractions(), lgp2.getFractions())
                && Arrays.equals(lgp1.getColors(), lgp2.getColors())
                && lgp1.getCycleMethod() == lgp2.getCycleMethod()
                && lgp1.getColorSpace() == lgp2.getColorSpace()
                && lgp1.getTransform().equals(lgp2.getTransform());
    } 
    if (p1 instanceof RadialGradientPaint 
            && p2 instanceof RadialGradientPaint) {
        RadialGradientPaint rgp1 = (RadialGradientPaint) p1;
        RadialGradientPaint rgp2 = (RadialGradientPaint) p2;
        return rgp1.getCenterPoint().equals(rgp2.getCenterPoint())
                && rgp1.getRadius() == rgp2.getRadius() 
                && rgp1.getFocusPoint().equals(rgp2.getFocusPoint())
                && Arrays.equals(rgp1.getFractions(), rgp2.getFractions())
                && Arrays.equals(rgp1.getColors(), rgp2.getColors())
                && rgp1.getCycleMethod() == rgp2.getCycleMethod()
                && rgp1.getColorSpace() == rgp2.getColorSpace()
                && rgp1.getTransform().equals(rgp2.getTransform());
    }
    return p1.equals(p2);
}
 
开发者ID:jfree,项目名称:fxgraphics2d,代码行数:67,代码来源:FXGraphics2D.java


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