Java 类javafx.scene.shape.Path 实例源码
项目:marathonv5
文件:AdvCandleStickChartSample.java
@Override protected void seriesAdded(Series<Number, Number> series, int seriesIndex) {
// handle any data already in series
for (int j = 0; j < series.getData().size(); j++) {
Data item = series.getData().get(j);
Node candle = createCandle(seriesIndex, item, j);
if (shouldAnimate()) {
candle.setOpacity(0);
getPlotChildren().add(candle);
// fade in new candle
FadeTransition ft = new FadeTransition(Duration.millis(500), candle);
ft.setToValue(1);
ft.play();
} else {
getPlotChildren().add(candle);
}
}
// create series path
Path seriesPath = new Path();
seriesPath.getStyleClass().setAll("candlestick-average-line", "series" + seriesIndex);
series.setNode(seriesPath);
getPlotChildren().add(seriesPath);
}
项目:marathonv5
文件:PathSample.java
public static Node createIconContent() {
Path path = new Path();
path.getElements().addAll(
new MoveTo(25, 25),
new HLineTo(45),
new ArcTo(20, 20, 0, 80, 25, true, true)
);
path.setStroke(Color.web("#b9c0c5"));
path.setStrokeWidth(5);
path.getStrokeDashArray().addAll(15d,15d);
path.setFill(null);
javafx.scene.effect.InnerShadow effect = new javafx.scene.effect.InnerShadow();
effect.setOffsetX(1);
effect.setOffsetY(1);
effect.setRadius(3);
effect.setColor(Color.rgb(0,0,0,0.6));
path.setEffect(effect);
return path;
}
项目:marathonv5
文件:AdvCandleStickChartSample.java
@Override protected void seriesAdded(Series<Number, Number> series, int seriesIndex) {
// handle any data already in series
for (int j = 0; j < series.getData().size(); j++) {
Data item = series.getData().get(j);
Node candle = createCandle(seriesIndex, item, j);
if (shouldAnimate()) {
candle.setOpacity(0);
getPlotChildren().add(candle);
// fade in new candle
FadeTransition ft = new FadeTransition(Duration.millis(500), candle);
ft.setToValue(1);
ft.play();
} else {
getPlotChildren().add(candle);
}
}
// create series path
Path seriesPath = new Path();
seriesPath.getStyleClass().setAll("candlestick-average-line", "series" + seriesIndex);
series.setNode(seriesPath);
getPlotChildren().add(seriesPath);
}
项目:marathonv5
文件:PathSample.java
public static Node createIconContent() {
Path path = new Path();
path.getElements().addAll(
new MoveTo(25, 25),
new HLineTo(45),
new ArcTo(20, 20, 0, 80, 25, true, true)
);
path.setStroke(Color.web("#b9c0c5"));
path.setStrokeWidth(5);
path.getStrokeDashArray().addAll(15d,15d);
path.setFill(null);
javafx.scene.effect.InnerShadow effect = new javafx.scene.effect.InnerShadow();
effect.setOffsetX(1);
effect.setOffsetY(1);
effect.setRadius(3);
effect.setColor(Color.rgb(0,0,0,0.6));
path.setEffect(effect);
return path;
}
项目:MultiAxisCharts
文件:MultiAxisAreaChart.java
@Override
protected void seriesChanged(Change<? extends MultiAxisChart.Series<X, Y>> c) {
// Update style classes for all series lines and symbols
// Note: is there a more efficient way of doing this?
for (int i = 0; i < getDataSize(); i++) {
final MultiAxisChart.Series<X, Y> s = getData().get(i);
Path seriesLine = (Path) ((Group) s.getNode()).getChildren().get(1);
Path fillPath = (Path) ((Group) s.getNode()).getChildren().get(0);
seriesLine.getStyleClass().setAll("chart-series-area-line", "series" + i, s.defaultColorStyleClass);
fillPath.getStyleClass().setAll("chart-series-area-fill", "series" + i, s.defaultColorStyleClass);
for (int j = 0; j < s.getData().size(); j++) {
final Data<X, Y> item = s.getData().get(j);
final Node node = item.getNode();
if (node != null)
node.getStyleClass().setAll("chart-area-symbol", "series" + i, "data" + j,
s.defaultColorStyleClass);
}
}
}
项目:MultiAxisCharts
文件:MultiAxisAreaChart.java
private void updateDefaultColorIndex(final MultiAxisChart.Series<X, Y> series) {
int clearIndex = seriesColorMap.get(series);
Path seriesLine = (Path) ((Group) series.getNode()).getChildren().get(1);
Path fillPath = (Path) ((Group) series.getNode()).getChildren().get(0);
if (seriesLine != null) {
seriesLine.getStyleClass().remove(DEFAULT_COLOR + clearIndex);
}
if (fillPath != null) {
fillPath.getStyleClass().remove(DEFAULT_COLOR + clearIndex);
}
for (int j = 0; j < series.getData().size(); j++) {
final Node node = series.getData().get(j).getNode();
if (node != null) {
node.getStyleClass().remove(DEFAULT_COLOR + clearIndex);
}
}
}
项目:H-Uppaal
文件:TagPresentation.java
public void bindToColor(final ObjectProperty<Color> color, final ObjectProperty<Color.Intensity> intensity, final boolean doColorBackground) {
final BiConsumer<Color, Color.Intensity> recolor = (newColor, newIntensity) -> {
final JFXTextField textField = (JFXTextField) lookup("#textField");
textField.setUnFocusColor(TRANSPARENT);
textField.setFocusColor(newColor.getColor(newIntensity));
if (doColorBackground) {
final Path shape = (Path) lookup("#shape");
shape.setFill(newColor.getColor(newIntensity.next(-1)));
shape.setStroke(newColor.getColor(newIntensity.next(-1).next(2)));
textField.setStyle("-fx-prompt-text-fill: rgba(255, 255, 255, 0.6); -fx-text-fill: " + newColor.getTextColorRgbaString(newIntensity) + ";");
textField.setFocusColor(newColor.getTextColor(newIntensity));
} else {
textField.setStyle("-fx-prompt-text-fill: rgba(0, 0, 0, 0.6);");
}
};
color.addListener(observable -> recolor.accept(color.get(), intensity.get()));
intensity.addListener(observable -> recolor.accept(color.get(), intensity.get()));
recolor.accept(color.get(), intensity.get());
}
项目:H-Uppaal
文件:ChannelSenderArrowHead.java
private Path initializeTriangle() {
final Path triangle = new Path();
MoveTo start = new MoveTo();
LineTo l1 = new LineTo();
LineTo l2 = new LineTo();
LineTo l3 = new LineTo();
start.xProperty().bind(ax);
start.yProperty().bind(ay);
l1.xProperty().bind(bx);
l1.yProperty().bind(by);
l2.xProperty().bind(cx);
l2.yProperty().bind(cy);
l3.xProperty().bind(ax);
l3.yProperty().bind(ay);
triangle.setFill(Color.BLACK);
triangle.getElements().addAll(start, l1, l2, l3);
return triangle;
}
项目:H-Uppaal
文件:HandshakeChannelSenderArrowHead.java
private Path initializeHalfCircle() {
final Path halfCircle = new Path();
halfCircle.setStroke(Color.BLACK);
MoveTo p1 = new MoveTo();
ArcTo p2 = new ArcTo();
p1.xProperty().bind(xProperty().add(CIRCLE_RADIUS));
p1.yProperty().bind(yProperty());
p2.xProperty().bind(xProperty().subtract(CIRCLE_RADIUS));
p2.yProperty().bind(yProperty());
p2.setRadiusX(CIRCLE_RADIUS);
p2.setRadiusY(CIRCLE_RADIUS);
halfCircle.getElements().add(p1);
halfCircle.getElements().add(p2);
return halfCircle;
}
项目:H-Uppaal
文件:BroadcastChannelSenderArrowHead.java
private Path initializeLargeCircle() {
final Path largeCircle = new Path();
largeCircle.setStroke(Color.BLACK);
MoveTo p1 = new MoveTo();
ArcTo p2 = new ArcTo();
p1.xProperty().bind(xProperty().add(LARGE_CIRCLE_RADIUS));
p1.yProperty().bind(yProperty());
p2.xProperty().bind(xProperty().subtract(LARGE_CIRCLE_RADIUS));
p2.yProperty().bind(yProperty());
p2.setRadiusX(LARGE_CIRCLE_RADIUS);
p2.setRadiusY(LARGE_CIRCLE_RADIUS);
largeCircle.getElements().add(p1);
largeCircle.getElements().add(p2);
return largeCircle;
}
项目:H-Uppaal
文件:BroadcastChannelSenderArrowHead.java
private Path initializeMediumCircle() {
final Path mediumCircle = new Path();
mediumCircle.setStroke(Color.BLACK);
MoveTo p1 = new MoveTo();
ArcTo p2 = new ArcTo();
p1.xProperty().bind(xProperty().add(MEDIUM_CIRCLE_RADIUS));
p1.yProperty().bind(yProperty());
p2.xProperty().bind(xProperty().subtract(MEDIUM_CIRCLE_RADIUS));
p2.yProperty().bind(yProperty());
p2.setRadiusX(MEDIUM_CIRCLE_RADIUS);
p2.setRadiusY(MEDIUM_CIRCLE_RADIUS);
mediumCircle.getElements().add(p1);
mediumCircle.getElements().add(p2);
return mediumCircle;
}
项目:H-Uppaal
文件:BroadcastChannelSenderArrowHead.java
private Path initializeSmallCircle() {
final Path smallCircle = new Path();
smallCircle.setStroke(Color.BLACK);
MoveTo p1 = new MoveTo();
ArcTo p2 = new ArcTo();
p1.xProperty().bind(xProperty().add(SMALL_CIRCLE_RADIUS));
p1.yProperty().bind(yProperty());
p2.xProperty().bind(xProperty().subtract(SMALL_CIRCLE_RADIUS));
p2.yProperty().bind(yProperty());
p2.setRadiusX(SMALL_CIRCLE_RADIUS);
p2.setRadiusY(SMALL_CIRCLE_RADIUS);
smallCircle.getElements().add(p1);
smallCircle.getElements().add(p2);
return smallCircle;
}
项目:population
文件:ChartSeries.java
public void refreshStyle() {
Path linePath = mLinePath;
Label legendLabel = mLegendLabel;
if (linePath == null && legendLabel == null) {
return;
}
String style = buildStyle();
if (linePath != null) {
linePath.setStyle(style);
}
if (legendLabel != null) {
Line line = new Line(0, 0, 36, 0);
line.setStyle(style);
legendLabel.setGraphic(line);
}
}
项目:FxEditor
文件:StyledTextPane.java
public StyledTextPane()
{
textField = new CTextFlow();
caret = new Path();
FX.style(caret, CARET);
caret.setManaged(false);
caret.setStroke(Color.BLACK);
getChildren().add(textField);
caretTimeline = new Timeline();
caretTimeline.setCycleCount(Animation.INDEFINITE);
// TODO property
updateBlinkRate(Duration.millis(500));
// FIX allow custom handlers
new StyledTextPaneMouseController(this);
}
项目:FxEditor
文件:TestTextFlowApp.java
public TestTextFlowWindow()
{
super("TestTextFlowWindow");
setTitle("TextFlow Test");
setSize(600, 200);
info = new Text();
highlight = new Path();
highlight.setManaged(false);
highlight.setStroke(null);
highlight.setFill(Color.YELLOW);
caret = new Path();
caret.setManaged(false);
caret.setStroke(Color.BLACK);
setTop(tf());
setBottom(new CTextFlow(info));
}
项目:javaone2016
文件:BadgeOutline.java
/**
* Once we have drawn the path, we call this method to generate two paths
* (outer and inner paths) and get a SVGPath with them that can be exported
* @param drawPath The original path
* @param svg
* @return the content string of the SVGPath with two paths
*/
public boolean generateOutline(Path drawPath, SVGPath svg) {
Pane pane = (Pane) drawPath.getParent();
final double width = pane.getWidth() * WIDTH_FACTOR;
Path outterPath = new Path(drawPath.getElements());
outterPath.setStroke(drawPath.getStroke());
outterPath.setStrokeLineJoin(drawPath.getStrokeLineJoin());
outterPath.setStrokeLineCap(drawPath.getStrokeLineCap());
outterPath.setStrokeWidth(width);
Path s1 = (Path) Shape.subtract(outterPath, new Rectangle(0, 0));
Path innerPath = new Path(drawPath.getElements());
innerPath.setStrokeWidth(0);
innerPath.setStroke(drawPath.getStroke());
innerPath.setStrokeLineJoin(drawPath.getStrokeLineJoin());
innerPath.setStrokeLineCap(drawPath.getStrokeLineCap());
Path s2 = (Path) Shape.subtract(innerPath, new Rectangle(0, 0));
Path result = (Path) Shape.subtract(s1, s2);
clearSmallPolygons(result);
svg.setContent(pathsToSVGPath());
return validPaths.size() == 2;
}
项目:javaone2016
文件:BadgeOutline.java
private void clearSmallPolygons(Path... paths){
validPaths = new ArrayList<>();
Point2D p0 = Point2D.ZERO;
for (Path path : paths) {
for (PathElement elem : path.getElements()) {
if (elem instanceof MoveTo) {
elements = new ArrayList<>();
elements.add(elem);
listPoints = new ArrayList<>();
p0 = new Point2D(((MoveTo)elem).getX(), ((MoveTo)elem).getY());
listPoints.add(p0);
} else if (elem instanceof CubicCurveTo) {
elements.add(elem);
Point2D ini = listPoints.size() > 0 ? listPoints.get(listPoints.size() - 1) : p0;
listPoints.addAll(evalCubicCurve((CubicCurveTo) elem, ini, POINTS_CURVE));
} else if (elem instanceof ClosePath) {
elements.add(elem);
listPoints.add(p0);
if (Math.abs(calculateArea()) > MINIMUM_AREA) {
validPaths.add(new Path(elements));
}
}
}
}
}
项目:javaone2016
文件:BadgeOutline.java
private String pathsToSVGPath() {
final StringBuilder sb = new StringBuilder();
for (Path path : validPaths) {
for (PathElement element : path.getElements()) {
if (element instanceof MoveTo) {
sb.append("M ").append(((MoveTo) element).getX()).append(" ")
.append(((MoveTo) element).getY());
} else if (element instanceof CubicCurveTo) {
CubicCurveTo curve = (CubicCurveTo) element;
sb.append(" C ")
.append(curve.getControlX1()).append(" ").append(curve.getControlY1()).append(" ")
.append(curve.getControlX2()).append(" ").append(curve.getControlY2()).append(" ")
.append(curve.getX()).append(" ").append(curve.getY());
} else if (element instanceof ClosePath) {
sb.append(" Z ");
}
}
}
return sb.toString();
}
项目:Forum-Notifier
文件:ParticleAnimation.java
private void animate(Circle particle, Path path) {
Random randGen = new Random();
PathTransition pathTransition = new PathTransition(Duration.seconds(path.getElements().size() * (randGen.nextInt(30) + 30)), path, particle);
pathTransition.setInterpolator(Interpolator.EASE_OUT);
ScaleTransition scaleTransition = new ScaleTransition(Duration.seconds(3f), particle);
scaleTransition.setToX(10f);
scaleTransition.setToY(10f);
scaleTransition.setInterpolator(Interpolator.EASE_OUT);
FadeTransition fadeTransition = new FadeTransition(Duration.seconds(6f), particle);
fadeTransition.setToValue(0.7);
fadeTransition.setInterpolator(Interpolator.EASE_OUT);
pathTransition.play();
scaleTransition.play();
fadeTransition.play();
}
项目:openjfx-8u-dev-tests
文件:ContentMotion.java
public void applyTransition(Node node) {
PathTransition pathTransition = new PathTransition();
timeline = pathTransition;
path = (Path) drawPath(140.0, 140.0, 0);
path.setStrokeWidth(2);
path.setStroke(Color.RED);
path.setFill(Color.TRANSPARENT);
pathTransition.setDuration(Duration.millis(motionDuration));
pathTransition.setNode(node);
//pathTransition.setPath(AnimationPath.createFromPath(path));
pathTransition.setPath(path);
pathTransition.setOrientation(OrientationType.ORTHOGONAL_TO_TANGENT);
}
项目:openjfx-8u-dev-tests
文件:AnimationTransitionApp.java
@Override
public Node drawNode() {
currentTestNode = this;
PathTransition pathTransition = new PathTransition();
Pane p = pre(pathTransition);
Path path = createPath();
path.setStrokeWidth(2);
path.setStroke(Color.RED);
p.getChildren().add(path);
path.setFill(Color.TRANSPARENT);
pathTransition.setDuration(Duration.millis(typicalDuration));
pathTransition.setNode(circle);
//pathTransition.setPath(AnimationPath.createFromPath(path));
pathTransition.setPath(path);
pathTransition.setOrientation(OrientationType.ORTHOGONAL_TO_TANGENT);
timeline.setCycleCount(3);
timeline.setAutoReverse(true);
return p;
}
项目:ReqTraq
文件:StyledTextPane.java
public StyledTextPane()
{
textField = new CTextFlow();
caret = new Path();
FX.style(caret, CARET);
caret.setManaged(false);
caret.setStroke(Color.BLACK);
getChildren().add(textField);
caretTimeline = new Timeline();
caretTimeline.setCycleCount(Animation.INDEFINITE);
// TODO property
updateBlinkRate(Duration.millis(500));
// FIX allow custom handlers
new StyledTextPaneMouseController(this);
}
项目:qupath
文件:HistogramPanelFX.java
void updateNodeColors() {
// Set the colors, if we can
if (series.getNode() != null && (colorStroke != null || colorFill != null)) {
try {
Group group = (Group)series.getNode();
Path seriesLine = (Path)group.getChildren().get(1);
Path fillPath = (Path)group.getChildren().get(0);
seriesLine.setStroke(colorStroke);
fillPath.setFill(colorFill);
// for (Data<Number, Number> item : series.getData()) {
// if (item.getNode() != null) {
// item.getNode().setStyle("fx-fill: red");
// }
// }
// if (group.getChildren().size() > 2) {
// System.err.println(group.getChildren());
// }
} catch (Exception e) {
logger.error("Failed to set colors for series {}", series);
}
}
}
项目:bpmgauge
文件:Segment.java
private void initGraphics() {
moveTo = new MoveTo();
upperLeft = new LineTo();
upperRight = new LineTo();
lowerRight = new LineTo();
lowerLeft = new LineTo();
path = new Path();
path.getElements().add(moveTo);
path.getElements().add(upperLeft);
path.getElements().add(upperRight);
path.getElements().add(lowerRight);
path.getElements().add(lowerLeft);
path.getElements().add(new ClosePath());
path.getStyleClass().add("segment");
pane = new Pane(path);
pane.getStyleClass().add("segment");
getChildren().setAll(pane);
}
项目:marlin-fx
文件:TestNonAARasterization.java
public void renderPath(Path2D p2d, Path p, WritableImage wimg) {
if (useJava2D) {
BufferedImage bimg = new BufferedImage(TESTW, TESTH, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = bimg.createGraphics();
g2d.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL,
RenderingHints.VALUE_STROKE_PURE);
g2d.setColor(java.awt.Color.WHITE);
g2d.fillRect(0, 0, TESTW, TESTH);
g2d.setColor(java.awt.Color.BLACK);
if (useJava2DClip) {
g2d.setClip(p2d);
g2d.fillRect(0, 0, TESTW, TESTH);
g2d.setClip(null);
} else {
g2d.fill(p2d);
}
copy(bimg, wimg);
} else {
setPath(p, p2d);
SnapshotParameters sp = new SnapshotParameters();
sp.setViewport(new Rectangle2D(0, 0, TESTW, TESTH));
p.snapshot(sp, wimg);
}
}
项目:marlin-fx
文件:TestNonAARasterization.java
public void update(Path2D p2d) {
setPath(resultpath, p2d);
Path p = makePath();
WritableImage wimg = new WritableImage(TESTW, TESTH);
renderPath(p2d, p, wimg);
PixelReader pr = wimg.getPixelReader();
GraphicsContext gc = resultcv.getGraphicsContext2D();
gc.save();
for (int y = 0; y < TESTH; y++) {
for (int x = 0; x < TESTW; x++) {
boolean inpath = p2d.contains(x + 0.5, y + 0.5);
boolean nearpath = near(p2d, x + 0.5, y + 0.5, warn);
int pixel = pr.getArgb(x, y);
renderPixelStatus(gc, x, y, pixel, inpath, nearpath);
}
}
gc.restore();
}
项目:marlin-fx
文件:ShapeOutlineBugRectangle.java
@Override
public void start(Stage stage) throws Exception {
Path shape = new Path(new MoveTo(450, 450),
new LineTo(-SIZE, -SIZE),
new LineTo(0, -2 * SIZE),
new LineTo(SIZE, -SIZE),
new LineTo(450, 450),
new ClosePath());
shape.setFill(Color.BLUE);
shape.setStroke(Color.RED);
shape.setStrokeWidth(2.0);
shape.getStrokeDashArray().addAll(10.0, 5.0);
Pane root = new Pane();
root.getChildren().add(shape);
stage.setScene(new Scene(root, 900, 900));
stage.show();
}
项目:mars-sim
文件:SlideDemo.java
/**
* Generate the path transition.
*
* @param shape Shape to travel along path.
* @param path Path to be traveled upon.
* @param duration Duration of single animation.
* @param delay Delay before beginning first animation.
* @param orientation Orientation of shape during animation.
* @return PathTransition.
*/
private PathTransition generatePathTransition(
final Shape shape, final Path path,
final Duration duration, final Duration delay,
final OrientationType orientation)
{
final PathTransition pathTransition = new PathTransition();
pathTransition.setDuration(duration);
pathTransition.setDelay(delay);
pathTransition.setPath(path);
pathTransition.setNode(shape);
pathTransition.setOrientation(orientation);
pathTransition.setCycleCount(Timeline.INDEFINITE);
pathTransition.setAutoReverse(true);
return pathTransition;
}
项目:FXImgurUploader
文件:ShapeConverter.java
private static Path processPath(final List<String> PATH_LIST, final PathReader READER) {
final Path PATH = new Path();
PATH.setFillRule(FillRule.EVEN_ODD);
while (!PATH_LIST.isEmpty()) {
if ("M".equals(READER.read())) {
PATH.getElements().add(new MoveTo(READER.nextX(), READER.nextY()));
} else if ("L".equals(READER.read())) {
PATH.getElements().add(new LineTo(READER.nextX(), READER.nextY()));
} else if ("C".equals(READER.read())) {
PATH.getElements().add(new CubicCurveTo(READER.nextX(), READER.nextY(), READER.nextX(), READER.nextY(), READER.nextX(), READER.nextY()));
} else if ("Q".equals(READER.read())) {
PATH.getElements().add(new QuadCurveTo(READER.nextX(), READER.nextY(), READER.nextX(), READER.nextY()));
} else if ("H".equals(READER.read())) {
PATH.getElements().add(new HLineTo(READER.nextX()));
} else if ("L".equals(READER.read())) {
PATH.getElements().add(new VLineTo(READER.nextY()));
} else if ("A".equals(READER.read())) {
PATH.getElements().add(new ArcTo(READER.nextX(), READER.nextY(), 0, READER.nextX(), READER.nextY(), false, false));
} else if ("Z".equals(READER.read())) {
PATH.getElements().add(new ClosePath());
}
}
return PATH;
}
项目:JCardGamesFX
文件:KlondikeMouseUtil.java
/**
* Animates card movements.
*
* @param card The card view to animate.
* @param sourceX Source X coordinate of the card view.
* @param sourceY Source Y coordinate of the card view.
* @param targetX Destination X coordinate of the card view.
* @param targetY Destination Y coordinate of the card view.
* @param duration The duration of the animation.
* @param doAfter The action to perform after the animation has been completed.
*/
private void animateCardMovement(
CardView card, double sourceX, double sourceY,
double targetX, double targetY, Duration duration,
EventHandler<ActionEvent> doAfter) {
Path path = new Path();
path.getElements().add(new MoveToAbs(card, sourceX, sourceY));
path.getElements().add(new LineToAbs(card, targetX, targetY));
PathTransition pathTransition =
new PathTransition(duration, path, card);
pathTransition.setInterpolator(Interpolator.EASE_IN);
pathTransition.setOnFinished(doAfter);
Timeline blurReset = new Timeline();
KeyValue bx = new KeyValue(card.getDropShadow().offsetXProperty(), 0, Interpolator.EASE_IN);
KeyValue by = new KeyValue(card.getDropShadow().offsetYProperty(), 0, Interpolator.EASE_IN);
KeyValue br = new KeyValue(card.getDropShadow().radiusProperty(), 2, Interpolator.EASE_IN);
KeyFrame bKeyFrame = new KeyFrame(duration, bx, by, br);
blurReset.getKeyFrames().add(bKeyFrame);
ParallelTransition pt = new ParallelTransition(card, pathTransition, blurReset);
pt.play();
}
项目:fr.xs.jtk
文件:Text3DHelper.java
public Text3DHelper(String text, String font, int size){
this.text=text;
list=new ArrayList<>();
Text textNode = new Text(text);
textNode.setFont(new Font(font,size));
// Convert Text to Path
Path subtract = (Path)(Shape.subtract(textNode, new Rectangle(0, 0)));
// Convert Path elements into lists of points defining the perimeter (exterior or interior)
subtract.getElements().forEach(this::getPoints);
// Group exterior polygons with their interior polygons
polis.stream().filter(LineSegment::isHole).forEach(hole->{
polis.stream().filter(poly->!poly.isHole())
.filter(poly->!((Path)Shape.intersect(poly.getPath(), hole.getPath())).getElements().isEmpty())
.filter(poly->poly.getPath().contains(new Point2D(hole.getOrigen().x,hole.getOrigen().y)))
.forEach(poly->poly.addHole(hole));
});
polis.removeIf(LineSegment::isHole);
}
项目:FlagMaker-2
文件:OverlayDiamond.java
@Override
public void Draw(Pane canvas)
{
double width = canvas.getWidth() * (GetDoubleAttribute("Width") / (double) MaximumX);
double height = GetDoubleAttribute("Height") == 0
? width
: canvas.getHeight() * (GetDoubleAttribute("Height") / MaximumY);
double left = canvas.getWidth() * (GetDoubleAttribute("X") / MaximumX) - width / 2;
double top = canvas.getHeight() * (GetDoubleAttribute("Y") / MaximumY) - height / 2;
Path path = new Path(new PathElement[]
{
new MoveTo(0, height / 2),
new LineTo(width / 2, 0),
new LineTo(width, height / 2),
new LineTo(width / 2, height),
new LineTo(0, height / 2)
});
path.setFill(GetColorAttribute("Color"));
path.setStrokeWidth(0);
path.setLayoutX(left);
path.setLayoutY(top);
canvas.getChildren().add(path);
}
项目:FlagMaker-2
文件:OverlayFimbriationBackward.java
@Override
public void Draw(Pane canvas)
{
double widthX = canvas.getWidth() * (GetDoubleAttribute("Thickness") / MaximumX) / 2;
double widthY = canvas.getHeight() * (GetDoubleAttribute("Thickness") / MaximumX) / 2;
Path path = new Path(new PathElement[]
{
new MoveTo(widthX, 0),
new LineTo(0, 0),
new LineTo(0, widthY),
new LineTo(canvas.getWidth() - widthX, canvas.getHeight()),
new LineTo(canvas.getWidth(), canvas.getHeight()),
new LineTo(canvas.getWidth(), canvas.getHeight() - widthY),
new LineTo(widthX, 0)
});
path.setFill(GetColorAttribute("Color"));
path.setStrokeWidth(0);
canvas.getChildren().add(path);
}
项目:FlagMaker-2
文件:OverlayRing.java
@Override
public void Draw(Pane canvas)
{
double outerDiamX = canvas.getWidth() * (GetDoubleAttribute("Width") / MaximumX);
double outerDiamY = GetDoubleAttribute("Height") == 0
? outerDiamX
: canvas.getHeight() * (GetDoubleAttribute("Height") / MaximumY);
double proportion = GetDoubleAttribute("Size") / MaximumX;
double innerDiamX = outerDiamX * proportion;
double innerDiamY = outerDiamY * proportion;
double locX = (canvas.getWidth() * (GetDoubleAttribute("X") / MaximumX));
double locY = (canvas.getHeight() * (GetDoubleAttribute("Y") / MaximumY));
Ellipse outer = new Ellipse(locX, locY, outerDiamX / 2, outerDiamY / 2);
Ellipse inner = new Ellipse(locX, locY, innerDiamX / 2, innerDiamY / 2);
Shape ring = Path.subtract(outer, inner);
ring.setFill(GetColorAttribute("Color"));
canvas.getChildren().add(ring);
}
项目:FlagMaker-2
文件:OverlayBorder.java
@Override
protected Shape[] Thumbnail()
{
return new Shape[]
{
new Path(new PathElement[]
{
new MoveTo(0, 5),
new LineTo(30, 5),
new LineTo(30, 25),
new LineTo(0, 25),
new LineTo(0, 5),
new MoveTo(5, 10),
new LineTo(5, 20),
new LineTo(25, 20),
new LineTo(25, 10),
new LineTo(5, 10)
})
};
}
项目:FlagMaker-2
文件:OverlayFimbriationForward.java
@Override
public void Draw(Pane canvas)
{
double widthX = canvas.getWidth() * (GetDoubleAttribute("Thickness") / MaximumX) / 2;
double widthY = canvas.getHeight() * (GetDoubleAttribute("Thickness") / MaximumX) / 2;
Path path = new Path(new PathElement[]
{
new MoveTo(canvas.getWidth() - widthX, 0),
new LineTo(canvas.getWidth(), 0),
new LineTo(canvas.getWidth(), widthY),
new LineTo(widthX, canvas.getHeight()),
new LineTo(0, canvas.getHeight()),
new LineTo(0, canvas.getHeight() - widthY),
new LineTo(canvas.getWidth() - widthX, 0)
});
path.setFill(GetColorAttribute("Color"));
path.setStrokeWidth(0);
canvas.getChildren().add(path);
}
项目:FlagMaker-2
文件:DivisionBendsForward.java
@Override
public void Draw(Pane canvas)
{
double height = canvas.getHeight();
double width = canvas.getWidth();
canvas.getChildren().add(new Rectangle(width, height, Colors[0]));
Path p = new Path(new PathElement[]
{
new MoveTo(width, 0),
new LineTo(width, height),
new LineTo(0, height),
new LineTo(width, 0)
});
p.fillProperty().set(Colors[1]);
p.strokeWidthProperty().set(0);
canvas.getChildren().add(p);
}
项目:FlagMaker-2
文件:DivisionX.java
@Override
public void Draw(Pane canvas)
{
double height = canvas.getHeight();
double width = canvas.getWidth();
canvas.getChildren().add(new Rectangle(width, height, Colors[0]));
Path p = new Path(new PathElement[]
{
new MoveTo(0, height),
new LineTo(width, 0),
new LineTo(width, height),
new LineTo(0, 0)
});
p.fillProperty().set(Colors[1]);
p.strokeWidthProperty().set(0);
canvas.getChildren().add(p);
}
项目:FlagMaker-2
文件:DivisionBendsBackward.java
@Override
public void Draw(Pane canvas)
{
double height = canvas.getHeight();
double width = canvas.getWidth();
canvas.getChildren().add(new Rectangle(width, height, Colors[0]));
Path p = new Path(new PathElement[]
{
new MoveTo(width, height),
new LineTo(0, height),
new LineTo(0, 0),
new LineTo(width, height)
});
p.fillProperty().set(Colors[1]);
p.strokeWidthProperty().set(0);
canvas.getChildren().add(p);
}
项目:Elegit
文件:DirectedPath.java
/**
* Constructs and binds the appropriate properties for the line and
* the arrow
*/
public DirectedPath(DoubleBinding startX, DoubleBinding startY,
DoubleBinding endX,DoubleBinding endY){
this.path = new Path();
MoveTo start = new MoveTo();
start.xProperty().bind(startX);
start.yProperty().bind(startY);
LineTo end = new LineTo();
end.xProperty().bind(endX);
end.yProperty().bind(endY);
path.getElements().add(start);
path.getElements().add(end);
this.arrow = getArrow();
this.getChildren().add(path);
this.getChildren().add(arrow);
this.path.getStyleClass().setAll("edge");
}