Java 类javafx.scene.paint.RadialGradient 实例源码

项目:marathonv5    文件:RadialGradientSample.java   
public RadialGradientSample() {
    //create simple radial gradient
    RadialGradient gradient1 = new RadialGradient(0, 0, 0.5, 0.5, 1, true, CycleMethod.NO_CYCLE, new Stop[] {
        new Stop(0, Color.DODGERBLUE),
        new Stop(1, Color.BLACK)
    });
    Circle circle1 = new Circle(45, 45, 40, gradient1);

    //create complex radial gradient
    RadialGradient gradient2 = new RadialGradient(20, 1, 0.5, 0.5, 0.6, true, CycleMethod.NO_CYCLE, new Stop[] {
        new Stop(0,  Color.TRANSPARENT),
        new Stop(0.5,  Color.DARKGRAY),
        new Stop(0.64, Color.WHITESMOKE),
        new Stop(0.65, Color.YELLOW),
        new Stop(1, Color.GOLD)
    });
    Circle circle2 = new Circle(145, 45, 40, gradient2);

    HBox hb = new HBox(10);
    hb.getChildren().addAll(circle1, circle2);

    // show the circles
    getChildren().addAll(hb);
}
项目:marathonv5    文件:RadialGradientSample.java   
public RadialGradientSample() {
    //create simple radial gradient
    RadialGradient gradient1 = new RadialGradient(0, 0, 0.5, 0.5, 1, true, CycleMethod.NO_CYCLE, new Stop[] {
        new Stop(0, Color.DODGERBLUE),
        new Stop(1, Color.BLACK)
    });
    Circle circle1 = new Circle(45, 45, 40, gradient1);

    //create complex radial gradient
    RadialGradient gradient2 = new RadialGradient(20, 1, 0.5, 0.5, 0.6, true, CycleMethod.NO_CYCLE, new Stop[] {
        new Stop(0,  Color.TRANSPARENT),
        new Stop(0.5,  Color.DARKGRAY),
        new Stop(0.64, Color.WHITESMOKE),
        new Stop(0.65, Color.YELLOW),
        new Stop(1, Color.GOLD)
    });
    Circle circle2 = new Circle(145, 45, 40, gradient2);

    HBox hb = new HBox(10);
    hb.getChildren().addAll(circle1, circle2);

    // show the circles
    getChildren().addAll(hb);
}
项目:charts    文件:AreaHeatMap.java   
private void draw(final int LIMIT, final double RESOLUTION) {
    int limit        = LIMIT > points.size() ? points.size() : LIMIT + 1;
    double pixelSize = 2 * RESOLUTION;

    ctx.clearRect(0, 0, width, height);

    for (double y = 0 ; y < height ; y += RESOLUTION) {
        for (double x = 0 ; x < width ; x += RESOLUTION) {
            double value = getValueAt(limit, x, y);
            if (value != -255) {
                Color          color    = getUseColorMapping() ? getColorForValue(value) : getColorForValue(value, isDiscreteColors());
                RadialGradient gradient = new RadialGradient(0, 0, x, y, RESOLUTION,
                                                             false, CycleMethod.NO_CYCLE,
                                                             new Stop(0, Color.color(color.getRed(), color.getGreen(), color.getBlue(), getHeatMapOpacity())),
                                                             new Stop(1, Color.color(color.getRed(), color.getGreen(), color.getBlue(), 0.0)));
                ctx.setFill(gradient);
                ctx.fillOval(x - RESOLUTION, y - RESOLUTION, pixelSize, pixelSize);
            }
        }
    }
}
项目:enders_game    文件:Bullet.java   
/**
* The constructor for a bullet.
* 
* @param radius - the radius of the bullet
* @param fill - the color of the bullet highlight
*/
  public Bullet(double radius, Color fill) {
      sphere = CircleBuilder.create()
              .centerX(radius)
              .centerY(radius)
              .radius(radius)
              .cache(true)
              .build();

      RadialGradient rgrad = RadialGradientBuilder.create()
                  .centerX(sphere.getCenterX() - sphere.getRadius() / 3)
                  .centerY(sphere.getCenterY() - sphere.getRadius() / 3)
                  .radius(sphere.getRadius())
                  .proportional(false)
                  .stops(new Stop(0.0, fill), new Stop(1.0, Settings.BULLET_PRIMARY_COLOR))
                  .build();

      sphere.setFill(rgrad);
  }
项目:CSS-Editor-FX    文件:CSSPaintPaser.java   
public List<Function<String, Paint>> getTasks() {
  return CacheUtil.cache(CSSPaintPaser.class, () -> Arrays.asList(
      text -> Color.web(text, 1),
      text -> LinearGradient.valueOf(text),
      text -> RadialGradient.valueOf(text),
      text -> context.lookup(text),
      text -> DeriveColorConverter.getInstance().convert(factory.apply(text), Font.getDefault()),
      text -> LadderConverter.getInstance().convert(factory.apply(text), Font.getDefault()),
      text -> LinearGradientConverter.getInstance().convert(factory.apply(text), Font.getDefault()),
      text -> RadialGradientConverter.getInstance().convert(factory.apply(text), Font.getDefault())
      ));
}
项目:The-Projects    文件:Player.java   
/**
 * Constructor without cards
 * @param name the name of the player
 * @param role the role of the player
 */
public Player(String name, Role role) {
    this.name = name;
    this.role = role;
    color = role.roleToColor();
    hand = new LinkedList<>();
    handDeck = null;
    pane = new Pane();
    pane.setBackground(new Background(new BackgroundFill(new RadialGradient(0, 0, .5, .5, .8, true, CycleMethod.NO_CYCLE, new Stop(0, color.deriveColor(0,1,1,.25)), new Stop(1, color.deriveColor(0,1,.5,.25))), new CornerRadii(5), new Insets(0))));

    Label description = new Label(role.roleToDescription());
    description.setTextFill(role.roleToColor().brighter());
    pane.getChildren().add(description);
    nameLabel = new Label(name);
    nameLabel.setTextFill(role.roleToColor().brighter());
    nameLabel.setLayoutX(350);
    nameLabel.setLayoutY(20);
    pane.getChildren().add(nameLabel);


    pawn = new Pawn(this);
}
项目:JavaOne2015JavaFXPitfalls    文件:Utils.java   
/**
 * Create an alpha masked ball with gradient colors from White to Black/Transparent. Used e. g. for particles.
 * May only be visible when you have a background other than white, ie use black
 *
 * @param radius
 * @return
 */
public static Node createAlphaMaskedBall( double radius) {

    Circle ball = new Circle(radius);

    RadialGradient gradient1 = new RadialGradient(0,
            .1,
            0,
            0,
            radius,
            false,
            CycleMethod.NO_CYCLE,
            new Stop(0, Color.WHITE.deriveColor(1,1,1,1)),
            new Stop(1, Color.BLACK.deriveColor(1,1,1,0)));

    ball.setFill(gradient1);

    return ball;
}
项目:POL-POM-5    文件:AbstractStepRepresentation.java   
protected void drawLeftImage() {
    AnchorPane pane = new AnchorPane();
    pane.setPrefWidth(187);
    Stop[] stops = new Stop[] { new Stop(0, Color.web("#3c79b2")), new Stop(1, Color.web("#2d5d8b")) };
    RadialGradient gradient = new RadialGradient(0, 0, 0.5, 0.5, 1, true, CycleMethod.NO_CYCLE, stops);

    Background background = new Background(new BackgroundFill(gradient, null, null));
    pane.setBackground(background);

    Text text = new Text(this.parent.getLeftImageText());
    text.setFill(Color.WHITE);
    text.setFont(Font.font("Maven Pro", 50));
    text.setRotate(-90);
    pane.setPadding(new Insets(-50));
    pane.getChildren().add(text);
    AnchorPane.setBottomAnchor(text, 160.0);
    AnchorPane.setRightAnchor(text, -40.0);

    getParent().getRoot().setLeft(pane);
}
项目:kotlinfx-ensemble    文件:RadialGradientSample.java   
public RadialGradientSample() {
    //create simple radial gradient
    RadialGradient gradient1 = new RadialGradient(0, 0, 0.5, 0.5, 1, true, CycleMethod.NO_CYCLE, new Stop[] {
        new Stop(0, Color.DODGERBLUE),
        new Stop(1, Color.BLACK)
    });
    Circle circle1 = new Circle(45, 45, 40, gradient1);

    //create complex radial gradient
    RadialGradient gradient2 = new RadialGradient(20, 1, 0.5, 0.5, 0.6, true, CycleMethod.NO_CYCLE, new Stop[] {
        new Stop(0,  Color.TRANSPARENT),
        new Stop(0.5,  Color.DARKGRAY),
        new Stop(0.64, Color.WHITESMOKE),
        new Stop(0.65, Color.YELLOW),
        new Stop(1, Color.GOLD)
    });
    Circle circle2 = new Circle(145, 45, 40, gradient2);

    HBox hb = new HBox(10);
    hb.getChildren().addAll(circle1, circle2);

    // show the circles
    getChildren().addAll(hb);
}
项目:Fishification    文件:FishWorld.java   
/**
 * Draws the background of the aquarium.
 */
private void fillAquariumBackground() {

    RadialGradientBuilder gradientBuilder = RadialGradientBuilder.create();
    gradientBuilder.centerX(getWorldCanvas().getWidth() / 2);
    gradientBuilder.centerY(50);
    gradientBuilder.radius(1000);
    gradientBuilder.proportional(false);
    gradientBuilder.stops(new Stop(0.0, Color.WHITE), new Stop(0.05, Color.rgb(245, 251, 251)),
                          new Stop(0.1, Color.rgb(220, 242, 239)), new Stop(0.2, Color.rgb(164, 214, 211)),
                          new Stop(0.3, Color.rgb(142, 195, 199)), new Stop(0.4, Color.rgb(111, 170, 184)),
                          new Stop(0.5, Color.rgb(84, 145, 166)), new Stop(0.6, Color.rgb(61, 125, 152)),
                          new Stop(0.7, Color.rgb(50, 111, 140)), new Stop(0.8, Color.rgb(33, 96, 129)),
                          new Stop(0.9, Color.rgb(25, 85, 121)), new Stop(1.0, Color.rgb(19, 77, 115)));
    RadialGradient gradient = gradientBuilder.build();

    getWorldCanvas().setFill(gradient);
}
项目:Fishification    文件:BubbleEntity.java   
private Circle createBubbleCircle(double radius) {
    CircleBuilder<?> circleBuilder = CircleBuilder.create();
    circleBuilder.radius(radius);
    circleBuilder.cache(true);
    Circle sphere = circleBuilder.build();
    sphere.setOpacity(BUBBLE_OPACITY);

    RadialGradientBuilder gradientBuilder = RadialGradientBuilder.create();
    gradientBuilder.centerX(sphere.getCenterX() - sphere.getRadius() / 3);
    gradientBuilder.centerY(sphere.getCenterY() - sphere.getRadius() / 3);
    gradientBuilder.radius(sphere.getRadius());
    gradientBuilder.proportional(false);
    gradientBuilder.stops(new Stop(0.0, Color.BLUE), new Stop(1.0, Color.BLACK));
    RadialGradient gradient = gradientBuilder.build();

    sphere.setFill(gradient);
    return sphere;
}
项目:RadialFx    文件:RadialGlobalMenu.java   
public void addMenuItem(final String iconPath,
    final EventHandler<MouseEvent> eventHandler) {

final RadialGradient backGradient = new RadialGradient(0, 0, 0, 0,
    radius.get(), false, CycleMethod.NO_CYCLE, new Stop(0,
        BACK_GRADIENT_COLOR), new Stop(1, Color.TRANSPARENT));

final RadialGradient backSelectGradient = new RadialGradient(0, 0, 0,
    0, radius.get(), false, CycleMethod.NO_CYCLE, new Stop(0,
        BACK_SELECT_GRADIENT_COLOR), new Stop(1,
        Color.TRANSPARENT));

final RadialMenuItem item = RadialMenuItemBuilder.create()
    .length(length).graphic(new Group(getImageView(iconPath)))
    .backgroundFill(backGradient)
    .backgroundMouseOnFill(backSelectGradient)
    .innerRadius(innerRadius).radius(radius).offset(offset)
    .clockwise(true).backgroundVisible(true).strokeVisible(false)
    .build();

item.setOnMouseClicked(eventHandler);

items.add(item);
itemsContainer.getChildren().addAll(item);
   }
项目:marathonv5    文件:RadialGradientSample.java   
public static Node createIconContent() {
    Rectangle rect = new Rectangle(80,80,new RadialGradient(0, 0, 0.5, 0.5, 1, true, CycleMethod.NO_CYCLE, new Stop[] {
        new Stop(0, Color.rgb(156,216,255)),
        new Stop(0.5, Color.DODGERBLUE),
        new Stop(1, Color.rgb(0,70,140))
    }));
    rect.setArcWidth(20);
    rect.setArcHeight(20);
    return rect;
}
项目:marathonv5    文件:RadialGradientSample.java   
public static Node createIconContent() {
    Rectangle rect = new Rectangle(80,80,new RadialGradient(0, 0, 0.5, 0.5, 1, true, CycleMethod.NO_CYCLE, new Stop[] {
        new Stop(0, Color.rgb(156,216,255)),
        new Stop(0.5, Color.DODGERBLUE),
        new Stop(1, Color.rgb(0,70,140))
    }));
    rect.setArcWidth(20);
    rect.setArcHeight(20);
    return rect;
}
项目:CSS-Editor-FX    文件:CSSPaintPaser.java   
public List<Function<String, Paint>> getTasks() {
  return CacheUtil.cache(CSSPaintPaser.class, () -> Arrays.asList(
      text -> Color.web(text, 1),
      text -> LinearGradient.valueOf(text),
      text -> RadialGradient.valueOf(text),
      text -> context.lookup(text),
      text -> DeriveColorConverter.getInstance().convert(factory.apply(text), Font.getDefault()),
      text -> LadderConverter.getInstance().convert(factory.apply(text), Font.getDefault()),
      text -> LinearGradientConverter.getInstance().convert(factory.apply(text), Font.getDefault()),
      text -> RadialGradientConverter.getInstance().convert(factory.apply(text), Font.getDefault())
      ));
}
项目:charts    文件:RadarChartTest.java   
@Override public void init() {
    List<YChartItem> item1 = new ArrayList<>(ELEMENTS);
    List<YChartItem> item2 = new ArrayList<>(ELEMENTS);
    List<YChartItem> item3 = new ArrayList<>(ELEMENTS);
    for (int i = 0 ; i < ELEMENTS ; i++) {
        YChartItem dataPoint;

        dataPoint = new YChartItem(RND.nextDouble() * 100, "P" + i);
        item1.add(dataPoint);

        dataPoint = new YChartItem(RND.nextDouble() * 100, "P" + i);
        item2.add(dataPoint);

        dataPoint = new YChartItem(RND.nextDouble() * 100, "P" + i);
        item3.add(dataPoint);
    }

    series1 = new YSeries(item3, CHART_TYPE, new RadialGradient(0, 0, 0, 0, 1, true, CycleMethod.NO_CYCLE, new Stop(0.0, Color.rgb(0, 255, 255, 0.25)), new Stop(0.5, Color.rgb(255, 255, 0, 0.5)), new Stop(1.0, Color.rgb(255, 0, 255, 0.75))), Color.TRANSPARENT);
    series2 = new YSeries(item1, CHART_TYPE, new RadialGradient(0, 0, 0, 0, 1, true, CycleMethod.NO_CYCLE, new Stop(0.0, Color.rgb(255, 0, 0, 0.25)), new Stop(0.5, Color.rgb(255, 255, 0, 0.5)), new Stop(1.0, Color.rgb(0, 200, 0, 0.75))), Color.TRANSPARENT);
    series3 = new YSeries(item2, CHART_TYPE, new RadialGradient(0, 0, 0, 0, 1, true, CycleMethod.NO_CYCLE, new Stop(0.0, Color.rgb(0, 255, 255, 0.25)), new Stop(0.5, Color.rgb(0, 255, 255, 0.5)), new Stop(1.0, Color.rgb(0, 0, 255, 0.75))), Color.TRANSPARENT);

    chart   = new YChart(new YPane(series1, series2, series3));
    chart.setPrefSize(600, 600);

    timeline      = new Timeline();
    lastTimerCall = System.nanoTime();
    timer         = new AnimationTimer() {
        @Override public void handle(final long now) {
            if (now > lastTimerCall + INTERVAL) {
                animateData();
                long delta = System.nanoTime() - now;
                timeline.play();
                lastTimerCall = now + delta;
            }
        }
    };

    registerListener();
}
项目:LuckPermsUI    文件:Manager.java   
public void setOverlay(Pane pane) {
    overlay.getChildren().clear();
    if (pane != null) {
        Rectangle fade = new Rectangle(mainView.getScene().getWidth(), mainView.getScene().getHeight());
        Stop[] stops = {new Stop(0, new Color(0.9, 0.9, 0.9, 0.9)), new Stop(1, new Color(0.1, 0.1, 0.1, 0.1))};
        fade.setFill(new RadialGradient(0, 0, 0.5, 0.5, 1.5, true, CycleMethod.NO_CYCLE, stops));
        VBox vCenter = new VBox(pane);
        HBox hCenter = new HBox(vCenter);
        vCenter.setAlignment(Pos.CENTER);
        hCenter.setAlignment(Pos.CENTER);
        overlay.getChildren().addAll(fade, hCenter);
    }
}
项目:particlesfx    文件:NodeBubbles.java   
private Node[] createBubble(final double SIZE) {
    final double CENTER = SIZE * 0.5;
    final Node[] NODES  = new Node[3];

    final Circle MAIN = new Circle(CENTER, CENTER, CENTER);
    final Paint MAIN_FILL = new LinearGradient(CENTER, 0.02 * SIZE,
                                               0.50 * SIZE, 0.98 * SIZE,
                                               false, CycleMethod.NO_CYCLE,
                                               new Stop(0.0, Color.TRANSPARENT),
                                               new Stop(0.85, Color.rgb(255, 255, 255, 0.2)),
                                               new Stop(1.0, Color.rgb(255, 255, 255, 0.90)));
    MAIN.setFill(MAIN_FILL);
    MAIN.setStroke(null);

    final Circle FRAME      = new Circle(CENTER, CENTER, CENTER);
    final Paint  FRAME_FILL = new RadialGradient(0, 0,
                                                 CENTER, CENTER,
                                                 0.48 * SIZE,
                                                 false, CycleMethod.NO_CYCLE,
                                                 new Stop(0.0, Color.TRANSPARENT),
                                                 new Stop(0.92, Color.TRANSPARENT),
                                                 new Stop(1.0, Color.rgb(255, 255, 255, 0.5)));
    FRAME.setFill(FRAME_FILL);
    FRAME.setStroke(null);

    final Ellipse HIGHLIGHT      = new Ellipse(CENTER, 0.27 * SIZE, 0.38 * SIZE, 0.25 * SIZE);
    final Paint   HIGHLIGHT_FILL = new LinearGradient(CENTER, 0.04 * SIZE,
                                                     CENTER, CENTER,
                                                     false, CycleMethod.NO_CYCLE,
                                                     new Stop(0.0, Color.rgb(255, 255, 255, 0.7)),
                                                     new Stop(1.0, Color.TRANSPARENT));
    HIGHLIGHT.setFill(HIGHLIGHT_FILL);
    HIGHLIGHT.setStroke(null);

    NODES[0] = FRAME;
    NODES[1] = MAIN;
    NODES[2] = HIGHLIGHT;

    return NODES;
}
项目:benchmarkjfx    文件:FXBallVector.java   
public FXBallVector() {
    List<Stop> stops = new ArrayList<>();
    stops.add(new Stop(0.2, Color.RED));
    stops.add(new Stop(0.8, Color.RED.darker()));
    stops.add(new Stop(1.0, Color.RED.darker().darker()));
    RadialGradient gradient = new RadialGradient(0, 0, 20, 20, 20, false, CycleMethod.NO_CYCLE, stops);
    circle = new Circle(20, 20, 20, gradient);
    move();
}
项目:ColorSelector    文件:ColorSelector.java   
public void redraw(final Color COLOR) {
    mainCircle.setFill(new RadialGradient(0, 0, (size * 0.5), (size * 0.5), (size * 0.15410959),
                                          false, CycleMethod.NO_CYCLE,
                                          new Stop(0.0, COLOR.brighter()),
                                          new Stop(1.0, COLOR)));
    mainCircle.setStroke(COLOR.darker());
}
项目:FXGL    文件:Vignette.java   
/**
 * This must be called on any property change since
 * gradient is effectively immutable.
 */
private void applyChanges() {
    region.setFill(new RadialGradient(0, 0, region.getWidth() / 2, region.getHeight() / 2, radius,
            false, CycleMethod.NO_CYCLE,
            new Stop(0, Color.TRANSPARENT),
            new Stop(1, Color.color(color.getRed(), color.getGreen(), color.getBlue(), intensity))));
}
项目:The-Projects    文件:MyButton.java   
/**
 * Constructor with text to display
 * @param text the text to display
 */
public MyButton(String text) {
    super(text);
    setTextFill(Color.BLUEVIOLET);
    Color color = Color.ORANGE;
    setBackground(new Background(new BackgroundFill(new RadialGradient(0, 0, .5, .5, .8, true, CycleMethod.NO_CYCLE, new Stop(0, color), new Stop(1, color.deriveColor(0,1,.5,1))), new CornerRadii(20), new Insets(0))));
    setBorder(new Border(new BorderStroke(color.deriveColor(0,1,.5,1), BorderStrokeStyle.SOLID, new CornerRadii(20), new BorderWidths(2))));
    hoverProperty().addListener(e-> {
        if (!isFocused()) {
            if (isHover()) {
                setBorder(new Border(new BorderStroke(color.deriveColor(90, 1, .5, 1), BorderStrokeStyle.SOLID, new CornerRadii(20), new BorderWidths(2))));
            } else {
                setBorder(new Border(new BorderStroke(color.deriveColor(0, 1, .5, 1), BorderStrokeStyle.SOLID, new CornerRadii(20), new BorderWidths(2))));
            }
        }
    });
    focusedProperty().addListener(e-> {
        if (isFocused()) {
            setBorder(new Border(new BorderStroke(color.deriveColor(-90, 1, .5, 1), BorderStrokeStyle.SOLID, new CornerRadii(20), new BorderWidths(2))));
        } else {
            setBorder(new Border(new BorderStroke(color.deriveColor(0, 1, .5, 1), BorderStrokeStyle.SOLID, new CornerRadii(20), new BorderWidths(2))));
        }
    });
    pressedProperty().addListener(e -> {
        if (isPressed()) {
            setBackground(new Background(new BackgroundFill(new RadialGradient(0, 0, .5, .5, .8, true, CycleMethod.NO_CYCLE, new Stop(0, color.deriveColor(0,1,1,1)), new Stop(1, color.deriveColor(0,1,.1,1))), new CornerRadii(20), new Insets(0))));
        }else{
            setBackground(new Background(new BackgroundFill(new RadialGradient(0, 0, .5, .5, .8, true, CycleMethod.NO_CYCLE, new Stop(0, color), new Stop(1, color.deriveColor(0,1,.5,1))), new CornerRadii(20), new Insets(0))));
        }
    });

    setMaxWidth(Double.POSITIVE_INFINITY);
    setCursor(Cursor.HAND);
}
项目:The-Projects    文件:Building.java   
/**
 * Constructor of a Building
 * @param color the color of the building
 * @param UV the name of the corresponding UV
 * @param shapes the different shapes composing the building
 */
public Building(Color color, String UV, Shape ... shapes) {
    this.UV = UV;
    if (shapes.length > 1) {
        shape = Arrays.asList(shapes).stream().reduce(Shape::union).get();
    }else{
        shape = shapes[0];
    }
    this.color = color;
    shape.setFill(new RadialGradient(0, 0, .5, .5, .8, true, CycleMethod.NO_CYCLE, new Stop(0, color), new Stop(1, color.deriveColor(0,1,.5,1))));
    shape.setStroke(color.deriveColor(0,1,.5,1));
    shape.setStrokeWidth(3);
}
项目:org.csstudio.display.builder    文件:ThermometerRepresentation.java   
public void setFill(Color color)
{
    ellipse.setFill(
            new RadialGradient(0, 0, 0.3, 0.1, 0.4, true, CycleMethod.NO_CYCLE,
                    new Stop(0, color.interpolate(Color.WHITESMOKE, 0.8)),
                    new Stop(1, color)));
    fill.setFill(new LinearGradient(0, 0, .8, 0, true, CycleMethod.NO_CYCLE,
            new Stop(0, color),
            new Stop(.3, color.interpolate(Color.WHITESMOKE, 0.7)),
            new Stop(1, color)));
}
项目:org.csstudio.display.builder    文件:ThermoDemo.java   
public void setFill(Color color)
{
    ellipse.setFill(
            new RadialGradient(0, 0, 0.3, 0.1, 0.4, true, CycleMethod.NO_CYCLE,
                    new Stop(0, color.interpolate(Color.WHITESMOKE, 0.8)),
                    new Stop(1, color)));
    fill.setFill(new LinearGradient(0, 0, .8, 0, true, CycleMethod.NO_CYCLE,
                    new Stop(0, color),
                    new Stop(.3, color.interpolate(Color.WHITESMOKE, 0.7)),
                    new Stop(1, color)));
}
项目:Consume    文件:Vignette.java   
/**
 * This must be called on any property change since
 * gradient is effectively immutable.
 */
private void applyChanges() {
    region.setFill(new RadialGradient(0, 0, region.getWidth() / 2, region.getHeight() / 2, radius,
            false, CycleMethod.NO_CYCLE,
            new Stop(0, Color.TRANSPARENT),
            new Stop(1, Color.color(color.getRed(), color.getGreen(), color.getBlue(), intensity))));
}
项目:analogclock    文件:AnalogClockDrawing.java   
Node createCircle() {
    RadialGradient gradient = new RadialGradient(
            0, 0, 0.5, 0.5, 0.5, true, CycleMethod.NO_CYCLE,
            new Stop(0.8, Color.WHITE), new Stop(0.9, Color.BLACK), new Stop(0.95, Color.WHITE), new Stop(1.0, Color.BLACK)
    );
    Circle circle = new Circle(UNIT_SIZE, UNIT_SIZE, UNIT_SIZE, gradient);
    return circle;
}
项目:kotlinfx-ensemble    文件:RadialGradientSample.java   
public static Node createIconContent() {
    Rectangle rect = new Rectangle(80,80,new RadialGradient(0, 0, 0.5, 0.5, 1, true, CycleMethod.NO_CYCLE, new Stop[] {
        new Stop(0, Color.rgb(156,216,255)),
        new Stop(0.5, Color.DODGERBLUE),
        new Stop(1, Color.rgb(0,70,140))
    }));
    rect.setArcWidth(20);
    rect.setArcHeight(20);
    return rect;
}
项目:JFX8CustomControls    文件:Led.java   
private void recalc() {
    double size  = getWidth() < getHeight() ? getWidth() : getHeight();

    ledOffShadow = new InnerShadow(BlurType.TWO_PASS_BOX, Color.rgb(0, 0, 0, 0.65), 0.07 * size, 0, 0, 0);

    ledOnShadow  = new InnerShadow(BlurType.TWO_PASS_BOX, Color.rgb(0, 0, 0, 0.65), 0.07 * size, 0, 0, 0);
    ledOnShadow.setInput(new DropShadow(BlurType.TWO_PASS_BOX, ledColor.get(), 0.36 * size, 0, 0, 0));

    frameGradient = new LinearGradient(0.14 * size, 0.14 * size,
                                       0.84 * size, 0.84 * size,
                                       false, CycleMethod.NO_CYCLE,
                                       new Stop(0.0, Color.rgb(20, 20, 20, 0.65)),
                                       new Stop(0.15, Color.rgb(20, 20, 20, 0.65)),
                                       new Stop(0.26, Color.rgb(41, 41, 41, 0.65)),
                                       new Stop(0.26, Color.rgb(41, 41, 41, 0.64)),
                                       new Stop(0.85, Color.rgb(200, 200, 200, 0.41)),
                                       new Stop(1.0, Color.rgb(200, 200, 200, 0.35)));

    ledOnGradient = new LinearGradient(0.25 * size, 0.25 * size,
                                       0.74 * size, 0.74 * size,
                                       false, CycleMethod.NO_CYCLE,
                                       new Stop(0.0, ledColor.get().deriveColor(0d, 1d, 0.77, 1d)),
                                       new Stop(0.49, ledColor.get().deriveColor(0d, 1d, 0.5, 1d)),
                                       new Stop(1.0, ledColor.get()));

    ledOffGradient = new LinearGradient(0.25 * size, 0.25 * size,
                                        0.74 * size, 0.74 * size,
                                        false, CycleMethod.NO_CYCLE,
                                        new Stop(0.0, ledColor.get().deriveColor(0d, 1d, 0.20, 1d)),
                                        new Stop(0.49, ledColor.get().deriveColor(0d, 1d, 0.13, 1d)),
                                        new Stop(1.0, ledColor.get().deriveColor(0d, 1d, 0.2, 1d)));

    highlightGradient = new RadialGradient(0, 0,
                                           0.3 * size, 0.3 * size,
                                           0.29 * size,
                                           false, CycleMethod.NO_CYCLE,
                                           new Stop(0.0, Color.WHITE),
                                           new Stop(1.0, Color.TRANSPARENT));
    draw();
}
项目:Fishification    文件:FoodItemEntity.java   
private Circle createFoodCircle(double radius) {
    CircleBuilder<?> circleBuilder = CircleBuilder.create();
    circleBuilder.radius(radius);
    circleBuilder.cache(true);
    Circle sphere = circleBuilder.build();
    sphere.setOpacity(FOOD_OPACITY);

    RadialGradientBuilder gradientBuilder = RadialGradientBuilder.create();
    gradientBuilder.centerX(sphere.getCenterX() - sphere.getRadius() / 3);
    gradientBuilder.centerY(sphere.getCenterY() - sphere.getRadius() / 3);
    gradientBuilder.radius(sphere.getRadius());
    gradientBuilder.proportional(false);

    if (m_foodSource.equalsIgnoreCase("twitter")) {
        gradientBuilder.stops(new Stop(0.0, Color.LIGHTCYAN), new Stop(1.0, Color.DARKCYAN));
    } else if (m_foodSource.equalsIgnoreCase("sociotech")) {
        gradientBuilder.stops(new Stop(0.0, Color.GRAY), new Stop(1.0, Color.DARKGRAY));
    } else if (m_foodSource.equalsIgnoreCase("cscm")) {
        gradientBuilder.stops(new Stop(0.4, Color.ORANGE), new Stop(1.0, Color.BLACK));
    } else if (m_foodSource.equalsIgnoreCase("unibwm")) {
        gradientBuilder.stops(new Stop(0.0, Color.DARKORANGE), new Stop(1.0, Color.BLACK));
    } else if (m_foodSource.equalsIgnoreCase("mendeley")) {
        gradientBuilder.stops(new Stop(0.0, Color.RED), new Stop(1.0, Color.BLACK));
    } else if (m_foodSource.equalsIgnoreCase("studiendekan")) {
        gradientBuilder.stops(new Stop(0.0, Color.SANDYBROWN), new Stop(1.0, Color.BLACK));
    } else {
        gradientBuilder.stops(new Stop(0.0, Color.YELLOW), new Stop(1.0, Color.BLACK));
    }
    RadialGradient gradient = gradientBuilder.build();

    sphere.setFill(gradient);
    return sphere;
}
项目:RadialFx    文件:RadialGlobalMenu.java   
private void computeBack() {
final Rectangle rect = new Rectangle();
rect.setWidth(widthProp.get());
rect.setHeight(heightProp.get());
rect.setTranslateX(widthProp.get() / -2.0);
rect.setTranslateY(heightProp.get() / -2.0);

final RadialGradient radialGradient = new RadialGradient(0, 0,
    widthProp.get() / 2.0, heightProp.get() / 2.0,
    widthProp.get() / 2.0, false, CycleMethod.NO_CYCLE, new Stop(0,
        Color.TRANSPARENT), new Stop(1, BACK_GRADIENT_COLOR));

rect.setFill(radialGradient);
backContainer.getChildren().setAll(rect);
   }
项目:Medusa    文件:PlainClockSkin.java   
@Override protected void redraw() {
    pane.setBorder(new Border(new BorderStroke(clock.getBorderPaint(), BorderStrokeStyle.SOLID, new CornerRadii(1024), new BorderWidths(clock.getBorderWidth() / PREFERRED_WIDTH * size))));
    pane.setBackground(new Background(new BackgroundFill(clock.getBackgroundPaint(), new CornerRadii(1024), Insets.EMPTY)));

    hour.setFill(clock.getHourColor());
    minute.setFill(clock.getMinuteColor());
    second.setFill(clock.getSecondColor());
    knob.setFill(clock.getKnobColor());
    title.setFill(clock.getTitleColor());
    text.setFill(clock.getTextColor());

    shadowGroupHour.setEffect(clock.getShadowsEnabled() ? dropShadow : null);
    shadowGroupMinute.setEffect(clock.getShadowsEnabled() ? dropShadow : null);
    shadowGroupSecond.setEffect(clock.getShadowsEnabled() ? dropShadow : null);

    // Areas, Sections
    sectionsAndAreasCtx.clearRect(0, 0, size, size);
    if (areasVisible) Helper.drawTimeAreas(clock, sectionsAndAreasCtx, areas, size, 0.025, 0.025, 0.95, 0.95);
    if (sectionsVisible) Helper.drawTimeSections(clock, sectionsAndAreasCtx, sections, size, 0.06, 0.06, 0.88, 0.88, 0.07);

    // Tick Marks
    tickCanvas.setCache(false);
    drawTicks();
    tickCanvas.setCache(true);
    tickCanvas.setCacheHint(CacheHint.QUALITY);

    ZonedDateTime time = clock.getTime();

    updateTime(time);

    title.setText(clock.getTitle());
    Helper.adjustTextSize(title, 0.6 * size, size * 0.12);
    title.relocate((size - title.getLayoutBounds().getWidth()) * 0.5, size * 0.25);

    text.setText(TIME_FORMATTER.format(time));
    Helper.adjustTextSize(text, 0.6 * size, size * 0.12);
    text.relocate((size - text.getLayoutBounds().getWidth()) * 0.5, size * 0.6);

    dateNumber.setText(DATE_NUMBER_FORMATER.format(time).toUpperCase());
    Helper.adjustTextSize(dateNumber, 0.3 * size, size * 0.05);
    dateNumber.relocate(((size * 0.5) - dateNumber.getLayoutBounds().getWidth()) * 0.5 + (size * 0.6), (size - dateNumber.getLayoutBounds().getHeight()) * 0.5);

    knob.setFill(new RadialGradient(0, 0, size * 0.5, size * 0.5, size * 0.0148448,
                                    false, CycleMethod.NO_CYCLE,
                                    new Stop(0.0, Color.rgb(1, 2, 1)),
                                    new Stop(0.4, Color.rgb(15, 15, 15)),
                                    new Stop(0.6, Color.rgb(153, 153, 153)),
                                    new Stop(0.8, Color.rgb(27, 10, 27)),
                                    new Stop(1.0, Color.rgb(27, 10, 27))));

    alarmPane.getChildren().setAll(alarmMap.values());
    Helper.drawAlarms(clock, size, 0.015, 0.46, alarmMap, DATE_TIME_FORMATTER, time);
}
项目:Medusa    文件:FGauge.java   
private void redraw() {
    double width  = getWidth() - getInsets().getLeft() - getInsets().getRight();
    double height = getHeight() - getInsets().getTop() - getInsets().getBottom();
    size          = width < height ? width : height;

    if (size > 0) {
        if (getWidth() > getHeight()) {
            setTranslateX(0.5 * (getWidth() - size));
        } else if (getHeight() > getWidth()) {
            setTranslateY(0.5 * (getHeight() - size));
        }

        frame.setPrefSize(size, size);
        frame.setBorder(gaugeDesign.getBorder(size));

        background.setCenterX(size * 0.5);
        background.setCenterY(size * 0.5);
        background.setRadius(size * 0.4375);

        background.setFill(gaugeBackground.getPaint(background.getLayoutBounds().getMinX(), background.getLayoutBounds().getMinY(),
                                                    background.getLayoutBounds().getMaxX(), background.getLayoutBounds().getMaxY()));

        switch(gaugeDesign) {
            case NONE:
                frame.setVisible(false);
                foreground.setVisible(false);
                background.setVisible(false);
                break;
            case ENZO:
                background.setFill(Color.rgb(240, 240, 240));
                innerShadow.setRadius(0.07407407 * size);
                innerShadow.setOffsetX(0);
                innerShadow.setOffsetY(0.07407407 * size);
                innerShadow.setColor(Color.rgb(0, 0, 0, 0.35));
                foreground.setFill(Color.TRANSPARENT);
                foreground.setStroke(null);
                break;
            default:
                frame.setVisible(true);
                foreground.setVisible(true);
                background.setVisible(true);
                innerShadow.setColor(Color.rgb(0, 0, 0, 0.65));
                innerShadow.setRadius(0.08 * size);
                innerShadow.setOffsetX(0);
                innerShadow.setOffsetY(0.0 * size);
                foreground.setFill(new RadialGradient(0, 0, size * 0.5, size * gaugeDesign.FRAME_FACTOR * 0.5, size, false, CycleMethod.NO_CYCLE,
                                                      new Stop(0, Color.rgb(255, 255, 255, 0.6)),
                                                      new Stop(0.4, Color.TRANSPARENT)));
                foreground.setStroke(null);
                break;
        }

        gauge.setPrefSize(size * (1.0 - gaugeDesign.FRAME_FACTOR * 2.0), size * (1.0 - gaugeDesign.FRAME_FACTOR * 2.0));
        gauge.relocate(gaugeDesign.FRAME_FACTOR * size, gaugeDesign.FRAME_FACTOR * size);

        foreground.setCenterX(size * 0.5);
        foreground.setCenterY(size * 0.5);
        foreground.setRadius(size * 0.42);
    }
}
项目:gluon-samples    文件:DoodleTrace.java   
/**
 * Constructor taking the application's name.
 * @param name The title of the application.
 */
public DoodleTrace(String name) {
    // Set title
    super(name);

    // Create the drawing surface
    Pane drawSurface = new Pane();
    setCenter(drawSurface);

    // Initialize draw path
    drawPath = new Path();
    drawPath.setStrokeWidth(3);
    drawPath.setStroke(Color.BLACK);
    drawSurface.getChildren().add(drawPath);

    // Initialize trace path
    tracePath = new Path();
    tracePath.setStrokeWidth(3);
    tracePath.setStroke(Color.BLACK);
    drawSurface.getChildren().add(tracePath);

    // Ball tracer
    RadialGradient gradient1 = new RadialGradient(
            0,
            0,
            .5,
            .5,
            .55,
            true,
            CycleMethod.NO_CYCLE,
            new Stop(0, Color.RED),
            new Stop(1, Color.BLACK));

    // Create a ball
    ball = new Circle(100, 100, 20, gradient1);

    // Add ball
    drawSurface.getChildren().add(ball);

    // Animation responsible for tracing the doodle
    tracerTimeline = new Timeline();

    // Flag to prevent user from doodling during animation
    tracerTimeline.setOnFinished(ae3 -> animating = false);

    if (Platform.isDesktop()) {
        applyMouseInput(drawSurface);
    } else if (Platform.isAndroid() || Platform.isIOS()) {
        applyTouchInput(drawSurface);
    }
}
项目:The-Projects    文件:Deck.java   
/**
 * complete constructor
 * @param scene the scene in which the Deck appear
 * @param text the text on the Deck
 * @param color the color of the Deck
 * @param relativeX the relative x position of the Deck
 * @param relativeY the relative y position of the Deck
 * @param horizontal the horizontality of the Deck
 */
public Deck (Scene scene,String text, Color color, double relativeX, double relativeY, boolean horizontal) {

    Rectangle rectangle = new Rectangle();
    rectangle.setFill(new RadialGradient(0, 0, .5, .5, .8, true, CycleMethod.NO_CYCLE, new Stop(0, color), new Stop(1, color.deriveColor(0,1,.5,1))));

    rectangle.setWidth(scene.getWidth()*(horizontal ? 22*9/16 : 9)/100.);
    rectangle.setHeight(scene.getHeight()*(horizontal ? 9*16/9 : 22)/100.);

    setLayoutX(scene.getWidth()*relativeX);
    setLayoutY(scene.getHeight()*relativeY);
    getChildren().add(rectangle);

    Label label = new Label(text);
    label.setFont(new Font(15));
    label.setTextFill(color.deriveColor(0,1,8,1));
    label.setMouseTransparent(true);


    getChildren().add(label);

}
项目:The-Projects    文件:MasteredCoursesDisplay.java   
/**
 * Complete constructor
 * @param scene the scene where the Pane appear
 * @param buildings the list of the different courses
 * @param posX the relative x position on the scene
 * @param posY the relative y position on the scene
 */
public MasteredCoursesDisplay(Scene scene, Building[] buildings, double posX, double posY) {
    Color color = Color.INDIGO;
    setLayoutX(scene.getWidth()*posX);
    setLayoutY(scene.getHeight()*posY);
    setPrefSize(scene.getWidth()*14.5/100., scene.getHeight()*13.5/100.);
    setMaxSize(scene.getWidth()*14.5/100., scene.getHeight()*13.5/100.);

    Text title = new Text("État des UVs :\n Maîtrisée(V),\nÉradiquée(X).");
    title.setFill(color.brighter().brighter());
    title.setLayoutX(getPrefWidth()/3.2);
    title.setLayoutY(15);
    getChildren().add(title);

    toMastered = new Timeline[4];
    toEradicated = new Timeline[4];

    setBackground(new Background(new BackgroundFill(new RadialGradient(0, 0, .5, .5, .8, true, CycleMethod.NO_CYCLE, new Stop(1, color.deriveColor(0,1,1,1)), new Stop(0, color.deriveColor(0,1,.5,1))), new CornerRadii(15), new Insets(0))));

    for (int i = 0; i < 4; ++i) {
        Color courseColor = buildings[i].getColor();
        Circle circle = new Circle(45 + i*50, 90, 17, new RadialGradient(0, 0, .5, .5, .8, true, CycleMethod.NO_CYCLE, new Stop(0, courseColor.deriveColor(0,1,1,1)), new Stop(1, courseColor.deriveColor(0,1,.5,1))));
        Text text = new Text(30 + i*50, 70, buildings[i].getUV());
        text.setFill(buildings[i].getColor());

        MoveTo moveTo1 = new MoveTo(45 + i*50, 82);
        LineTo lineTo1 = new LineTo(45 - 8 + i*50, 99);
        MoveTo moveTo2 = new MoveTo(45 + i*50, 82);
        LineTo lineTo2 = new LineTo(45 + 8 + i*50, 99);
        Path path = new Path(moveTo1, lineTo1, moveTo2, lineTo2);
        path.setStrokeWidth(2);

        getChildren().addAll(circle, text, path);
        toMastered[i] = new Timeline(new KeyFrame(Duration.millis(1000),
                new KeyValue(moveTo1.xProperty(), 45 - 8 + i*50),
                new KeyValue(moveTo2.xProperty(), 45 + 8 + i*50),
                new KeyValue(lineTo1.xProperty(), 45 + i*50),
                new KeyValue(lineTo2.xProperty(), 45 + i*50)
                ));
        toEradicated[i] = new Timeline(new KeyFrame(Duration.millis(1000),
                new KeyValue(moveTo1.xProperty(), 45 - 8 + i*50),
                new KeyValue(moveTo2.xProperty(), 45 + 8 + i*50),
                new KeyValue(lineTo1.xProperty(), 45 + 8 + i*50),
                new KeyValue(lineTo2.xProperty(), 45 - 8 + i*50)
        ));
    }
}
项目:FXImgurUploader    文件:Led.java   
private void draw() {
    double size = getWidth() < getHeight() ? getWidth() : getHeight();

    canvas.setWidth(size);
    canvas.setHeight(size);

    ctx.clearRect(0, 0, size, size);

    if (isFrameVisible()) { //frame
        Paint frame = new LinearGradient(0.14 * size, 0.14 * size,
                                         0.84 * size, 0.84 * size,
                                         false, CycleMethod.NO_CYCLE,
                                         new Stop(0.0, Color.rgb(20, 20, 20, 0.65)),
                                         new Stop(0.15, Color.rgb(20, 20, 20, 0.65)),
                                         new Stop(0.26, Color.rgb(41, 41, 41, 0.65)),
                                         new Stop(0.26, Color.rgb(41, 41, 41, 0.64)),
                                         new Stop(0.85, Color.rgb(200, 200, 200, 0.41)),
                                         new Stop(1.0, Color.rgb(200, 200, 200, 0.35)));
        ctx.setFill(frame);
        ctx.fillOval(0, 0, size, size);
    }

    InnerShadow innerShadow = new InnerShadow(BlurType.TWO_PASS_BOX, Color.rgb(0, 0, 0, 0.65), 0.07 * size, 0, 0, 0);
    if (isOn()) { //on
        ctx.save();
        Paint on = new LinearGradient(0.25 * size, 0.25 * size,
                                      0.74 * size, 0.74 * size,
                                      false, CycleMethod.NO_CYCLE,
                                      new Stop(0.0, ((Color)ledColor.get()).deriveColor(0d, 1d, 0.77, 1d)),
                                      new Stop(0.49, ((Color)ledColor.get()).deriveColor(0d, 1d, 0.5, 1d)),
                                      new Stop(1.0, ((Color)ledColor.get())));
        innerShadow.setInput(new DropShadow(BlurType.TWO_PASS_BOX, (Color)ledColor.get(), 0.36 * size, 0, 0, 0));
        ctx.setEffect(innerShadow);
        ctx.setFill(on);
        ctx.fillOval(0.14 * size, 0.14 * size, 0.72 * size, 0.72 * size);
        ctx.restore();
    } else { // off
        ctx.save();
        Paint off = new LinearGradient(0.25 * size, 0.25 * size,
                                       0.74 * size, 0.74 * size,
                                       false, CycleMethod.NO_CYCLE,
                                       new Stop(0.0, ((Color)ledColor.get()).deriveColor(0d, 1d, 0.20, 1d)),
                                       new Stop(0.49, ((Color)ledColor.get()).deriveColor(0d, 1d, 0.13, 1d)),
                                       new Stop(1.0, ((Color)ledColor.get()).deriveColor(0d, 1d, 0.2, 1d)));
        ctx.setEffect(innerShadow);
        ctx.setFill(off);
        ctx.fillOval(0.14 * size, 0.14 * size, 0.72 * size, 0.72 * size);
        ctx.restore();
    }

    //highlight
    Paint highlight = new RadialGradient(0, 0,
                                         0.3 * size, 0.3 * size,
                                         0.29 * size,
                                         false, CycleMethod.NO_CYCLE,
                                         new Stop(0.0, Color.WHITE),
                                         new Stop(1.0, Color.TRANSPARENT));
    ctx.setFill(highlight);
    ctx.fillOval(0.21 * size, 0.21 * size, 0.58 * size, 0.58 * size);
}
项目:FXImgurUploader    文件:RadialBargraphSkin.java   
private void resize() {
    size = getSkinnable().getWidth() < getSkinnable().getHeight() ? getSkinnable().getWidth() : getSkinnable().getHeight();
    centerX = size * 0.5;
    centerY = size * 0.5;

    final double RADIUS = size * 0.5 - 2;

    valueBlendBottomShadow.setOffsetY(0.005 * size);

    valueBlendTopShadow.setOffsetY(0.005 * size);
    valueBlendTopShadow.setRadius(0.005 * size);

    dropShadow.setRadius(0.015 * size);
    dropShadow.setOffsetY(0.015 * size);

    background.setPrefSize(size, size);

    ticksAndSectionsCanvas.setWidth(size);
    ticksAndSectionsCanvas.setHeight(size);
    ticksAndSections.clearRect(0, 0, size, size);
    drawSections(ticksAndSections);
    drawTickMarks(ticksAndSections);
    ticksAndSectionsCanvas.setCache(true);
    ticksAndSectionsCanvas.setCacheHint(CacheHint.QUALITY);

    drawMarkers();

    minMeasuredValue.setPrefSize(0.03 * size, 0.03 * size);
    minMeasuredValue.relocate((size - minMeasuredValue.getPrefWidth()) * 0.5, size * 0.11);
    minMeasuredValueRotate.setPivotX(minMeasuredValue.getPrefWidth() * 0.5);
    minMeasuredValueRotate.setPivotY(size * 0.39);
    minMeasuredValueRotate.setAngle(getSkinnable().getMinMeasuredValue() * angleStep - 180 - getSkinnable().getStartAngle());

    maxMeasuredValue.setPrefSize(0.03 * size, 0.03 * size);
    maxMeasuredValue.relocate((size - maxMeasuredValue.getPrefWidth()) * 0.5, size * 0.11);
    maxMeasuredValueRotate.setPivotX(maxMeasuredValue.getPrefWidth() * 0.5);
    maxMeasuredValueRotate.setPivotY(size * 0.39);
    maxMeasuredValueRotate.setAngle(getSkinnable().getMaxMeasuredValue() * angleStep - 180 - getSkinnable().getStartAngle());

    threshold.setPrefSize(0.06 * size, 0.055 * size);
    threshold.relocate((size - threshold.getPrefWidth()) * 0.5, size * 0.08);
    thresholdRotate.setPivotX(threshold.getPrefWidth() * 0.5);
    thresholdRotate.setPivotY(size * 0.42);
    thresholdRotate.setAngle(getSkinnable().getThreshold() * angleStep - 180 - getSkinnable().getStartAngle());

    value.setText(String.format(Locale.US, "%." + getSkinnable().getDecimals() + "f", (angle.get() / angleStep)));
    bar.setCenterX(centerX);
    bar.setCenterY(centerY);
    bar.setRadiusX(RADIUS);
    bar.setRadiusY(RADIUS);

    if (getSkinnable().isBarGradientEnabled()) {
        recalculateBarGradient();
        Image image = barGradient.getImage(size, size);
        bar.setFill(new ImagePattern(image, 0, 0, size, size, false));
    } else {
        bar.setFill(new RadialGradient(0, 0,
                                       centerX, centerY,
                                       RADIUS, false, CycleMethod.NO_CYCLE,
                                       new Stop(0.0, barColor),
                                       new Stop(0.76, barColor.deriveColor(-5, 1, 1, 1)), // -5 for on the barColorHue)
                                       new Stop(0.79, barColor),
                                       new Stop(0.97, barColor),
                                       new Stop(1.0, barColor.deriveColor(-5, 1, 1, 1)))); // -5 for on the barColorHue)
    }
    knob.setPrefSize(size * 0.75, size * 0.75);
    knob.setTranslateX((size - knob.getPrefWidth()) * 0.5);
    knob.setTranslateY((size - knob.getPrefHeight()) * 0.5);

    resizeText();
}
项目:FXImgurUploader    文件:Led.java   
private void draw() {
    double size   = getWidth() < getHeight() ? getWidth() : getHeight();

    canvas.setWidth(size);
    canvas.setHeight(size);

    ctx.clearRect(0, 0, size, size);

    if (isFrameVisible()) { //frame
        Paint frame = new LinearGradient(0.14 * size, 0.14 * size,
                                         0.84 * size, 0.84 * size,
                                         false, CycleMethod.NO_CYCLE,
                                         new Stop(0.0, Color.rgb(20, 20, 20, 0.65)),
                                         new Stop(0.15, Color.rgb(20, 20, 20, 0.65)),
                                         new Stop(0.26, Color.rgb(41, 41, 41, 0.65)),
                                         new Stop(0.26, Color.rgb(41, 41, 41, 0.64)),
                                         new Stop(0.85, Color.rgb(200, 200, 200, 0.41)),
                                         new Stop(1.0, Color.rgb(200, 200, 200, 0.35)));
        ctx.setFill(frame);
        ctx.fillOval(0, 0, size, size);
    }

    InnerShadow innerShadow = new InnerShadow(BlurType.TWO_PASS_BOX, Color.rgb(0, 0, 0, 0.65), 0.07 * size, 0, 0, 0);
    if (isOn()) { //on
        ctx.save();
        Paint on = new LinearGradient(0.25 * size, 0.25 * size,
                                      0.74 * size, 0.74 * size,
                                      false, CycleMethod.NO_CYCLE,
                                      new Stop(0.0, ledColor.get().deriveColor(0d, 1d, 0.77, 1d)),
                                      new Stop(0.49, ledColor.get().deriveColor(0d, 1d, 0.5, 1d)),
                                      new Stop(1.0, ledColor.get()));
        innerShadow.setInput(new DropShadow(BlurType.TWO_PASS_BOX, ledColor.get(), 0.36 * size, 0, 0, 0));
        ctx.setEffect(innerShadow);
        ctx.setFill(on);
        ctx.fillOval(0.14 * size, 0.14 * size, 0.72 * size, 0.72 * size);
        ctx.restore();
    } else { // off
        ctx.save();
        Paint off = new LinearGradient(0.25 * size, 0.25 * size,
                                       0.74 * size, 0.74 * size,
                                       false, CycleMethod.NO_CYCLE,
                                       new Stop(0.0, ledColor.get().deriveColor(0d, 1d, 0.20, 1d)),
                                       new Stop(0.49, ledColor.get().deriveColor(0d, 1d, 0.13, 1d)),
                                       new Stop(1.0, ledColor.get().deriveColor(0d, 1d, 0.2, 1d)));
        ctx.setEffect(innerShadow);
        ctx.setFill(off);
        ctx.fillOval(0.14 * size, 0.14 * size, 0.72 * size, 0.72 * size);
        ctx.restore();
    }

    //highlight
    Paint highlight = new RadialGradient(0, 0,
                                         0.3 * size, 0.3 * size,
                                         0.29 * size,
                                         false, CycleMethod.NO_CYCLE,
                                         new Stop(0.0, Color.WHITE),
                                         new Stop(1.0, Color.TRANSPARENT));
    ctx.setFill(highlight);
    ctx.fillOval(0.21 * size, 0.21 * size, 0.58 * size, 0.58 * size);
}
项目:org.csstudio.display.builder    文件:BaseLEDRepresentation.java   
@Override
public void updateChanges()
{
    if (typeChanged.checkAndClear())
    {
        createLED();
        styleChanged.mark();
        dirty_content.mark();
    }
    super.updateChanges();
    if (styleChanged.checkAndClear())
    {
        final Color color = JFXUtil.convert(model_widget.propForegroundColor().getValue());
        label.setTextFill(color);
        label.setFont(JFXUtil.convert(model_widget.propFont().getValue()));

        final int w = model_widget.propWidth().getValue();
        final int h = model_widget.propHeight().getValue();

        jfx_node.setPrefSize(w, h);
        if (led instanceof Ellipse)
        {
            final Ellipse ell = (Ellipse) led;
            ell.setCenterX(w/2);
            ell.setCenterY(h/2);
            ell.setRadiusX(w/2);
            ell.setRadiusY(h/2);
        }
        else if (led instanceof Rectangle)
        {
            final Rectangle rect = (Rectangle) led;
            rect.setWidth(w);
            rect.setHeight(h);
        }
        label.setPrefSize(w, h);
    }
    if (dirty_content.checkAndClear())
    {
        led.setFill(
            // Put highlight in top-left corner, about 0.2 wide,
            // relative to actual size of LED
            new RadialGradient(0, 0, 0.3, 0.3, 0.4, true, CycleMethod.NO_CYCLE,
                               new Stop(0, value_color.interpolate(Color.WHITESMOKE, 0.8)),
                               new Stop(1, value_color)));
        label.setText(value_label);
    }
}