Java 类javafx.scene.shape.LineTo 实例源码
项目: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;
}
项目:tilesfx
文件:SmoothAreaChartTileSkin.java
private void drawChart(final List<Point> POINTS) {
if (POINTS.isEmpty()) return;
Point[] points = smoothing ? Helper.subdividePoints(POINTS.toArray(new Point[0]), 8) : POINTS.toArray(new Point[0]);
fillPath.getElements().clear();
fillPath.getElements().add(new MoveTo(0, height));
strokePath.getElements().clear();
strokePath.getElements().add(new MoveTo(points[0].getX(), points[0].getY()));
for (Point p : points) {
fillPath.getElements().add(new LineTo(p.getX(), p.getY()));
strokePath.getElements().add(new LineTo(p.getX(), p.getY()));
}
fillPath.getElements().add(new LineTo(width, height));
fillPath.getElements().add(new LineTo(0, height));
fillPath.getElements().add(new ClosePath());
if (dataPointsVisible) { drawDataPoints(POINTS, tile.isFillWithGradient() ? tile.getGradientStops().get(0).getColor() : tile.getBarColor()); }
}
项目:tilesfx
文件:StockTileSkin.java
@Override protected void handleEvents(final String EVENT_TYPE) {
super.handleEvents(EVENT_TYPE);
if ("VISIBILITY".equals(EVENT_TYPE)) {
Helper.enableNode(titleText, !tile.getTitle().isEmpty());
Helper.enableNode(valueText, tile.isValueVisible());
Helper.enableNode(timeSpanText, !tile.isTextVisible());
redraw();
} else if ("VALUE".equals(EVENT_TYPE)) {
if(tile.isAnimated()) { tile.setAnimated(false); }
if (!tile.isAveragingEnabled()) { tile.setAveragingEnabled(true); }
double value = clamp(minValue, maxValue, tile.getValue());
addData(value);
handleCurrentValue(value);
} else if ("AVERAGING".equals(EVENT_TYPE)) {
noOfDatapoints = tile.getAveragingPeriod();
// To get smooth lines in the chart we need at least 4 values
if (noOfDatapoints < 4) throw new IllegalArgumentException("Please increase the averaging period to a value larger than 3.");
for (int i = 0; i < noOfDatapoints; i++) { dataList.add(minValue); }
pathElements.clear();
pathElements.add(0, new MoveTo());
for (int i = 1 ; i < noOfDatapoints ; i++) { pathElements.add(i, new LineTo()); }
sparkLine.getElements().setAll(pathElements);
redraw();
}
}
项目:FxEditor
文件:LineBox.java
/** returns selection shape for a given range */
public PathElement[] getRange(int start, int end)
{
if(center instanceof CTextFlow)
{
CTextFlow t = (CTextFlow)center;
return t.getRange(start, end);
}
else
{
double w = center.getWidth();
double h = center.getHeight();
return new PathElement[]
{
new MoveTo(0, 0),
new LineTo(w, 0),
new LineTo(w, h),
new LineTo(0, h),
new LineTo(0, 0)
};
}
}
项目:FxEditor
文件:LineBox.java
/** returns selection shape for a given range */
public PathElement[] getCaretShape(int index, boolean leading)
{
if(center instanceof CTextFlow)
{
CTextFlow t = (CTextFlow)center;
return t.getCaretShape(index, leading);
}
else
{
double x = leading ? 0 : center.getWidth();
double h = center.getHeight();
return new PathElement[]
{
new MoveTo(x, 0),
new LineTo(x, h)
};
}
}
项目:Medusa
文件:SectionSkin.java
private void createNeedle() {
double needleWidth = size * 0.04;
double needleHeight = size * 0.4675;
needle.getElements().clear();
needle.getElements().add(new MoveTo(0.3125 * needleWidth, 0.015957446808510637 * needleHeight));
needle.getElements().add(new CubicCurveTo(0.3125 * needleWidth, 0.005319148936170213 * needleHeight,
0.4375 * needleWidth, 0.0,
0.5 * needleWidth, 0.0));
needle.getElements().add(new CubicCurveTo(0.5625 * needleWidth, 0.0,
0.6875 * needleWidth, 0.005319148936170213 * needleHeight,
0.6875 * needleWidth, 0.015957446808510637 * needleHeight));
needle.getElements().add(new CubicCurveTo(0.6875 * needleWidth, 0.015957446808510637 * needleHeight,
needleWidth, 0.9946808510638298 * needleHeight,
needleWidth, 0.9946808510638298 * needleHeight));
needle.getElements().add(new LineTo(0.0, 0.9946808510638298 * needleHeight));
needle.getElements().add(new CubicCurveTo(0.0, 0.9946808510638298 * needleHeight,
0.3125 * needleWidth, 0.015957446808510637 * needleHeight,
0.3125 * needleWidth, 0.015957446808510637 * needleHeight));
needle.getElements().add(new ClosePath());
needle.setFill(new LinearGradient(needle.getLayoutBounds().getMinX(), 0,
needle.getLayoutBounds().getMaxX(), 0,
false, CycleMethod.NO_CYCLE,
new Stop(0.0, gauge.getNeedleColor().darker()),
new Stop(0.5, gauge.getNeedleColor()),
new Stop(1.0, gauge.getNeedleColor().darker())));
}
项目:Medusa
文件:AmpSkin.java
private void drawAverage() {
double scaledWidth = width * 1.106;
double centerX = width * 0.5;
double centerY = height * 0.77;
double minValue = gauge.getMinValue();
// Draw average
average.getElements().clear();
double averageAngle = START_ANGLE - (gauge.getAverage() - minValue) * angleStep;
double averageSize = Helper.clamp(2.0, 2.5, 0.01 * scaledWidth);
double sinValue = Math.sin(Math.toRadians(averageAngle));
double cosValue = Math.cos(Math.toRadians(averageAngle));
average.getElements().add(new MoveTo(centerX + scaledWidth * 0.38 * sinValue, centerY + scaledWidth * 0.38 * cosValue));
sinValue = Math.sin(Math.toRadians(averageAngle - averageSize));
cosValue = Math.cos(Math.toRadians(averageAngle - averageSize));
average.getElements().add(new LineTo(centerX + scaledWidth * 0.35 * sinValue, centerY + scaledWidth * 0.35 * cosValue));
sinValue = Math.sin(Math.toRadians(averageAngle + averageSize));
cosValue = Math.cos(Math.toRadians(averageAngle + averageSize));
average.getElements().add(new LineTo(centerX + scaledWidth * 0.35 * sinValue, centerY + scaledWidth * 0.35 * cosValue));
average.getElements().add(new ClosePath());
average.setFill(gauge.getAverageColor());
average.setStroke(gauge.getTickMarkColor());
}
项目: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);
}
项目:grapheditor
文件:ArrowHead.java
/**
* Draws the arrow-head for its current size and position values.
*/
public void draw() {
getElements().clear();
getElements().add(new MoveTo(x, y + length / 2));
getElements().add(new LineTo(x + width / 2, y - length / 2));
if (radius > 0) {
final ArcTo arcTo = new ArcTo();
arcTo.setX(x - width / 2);
arcTo.setY(y - length / 2);
arcTo.setRadiusX(radius);
arcTo.setRadiusY(radius);
arcTo.setSweepFlag(true);
getElements().add(arcTo);
} else {
getElements().add(new LineTo(x - width / 2, y - length / 2));
}
getElements().add(new ClosePath());
}
项目: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();
}
项目: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;
}
项目:markdown-writer-fx
文件:ParagraphOverlayGraphicFactory.java
protected Rectangle2D getBounds(int start, int end) {
PathElement[] shape = getShape(start, end);
double minX = 0, minY = 0, maxX = 0, maxY = 0;
for (PathElement pathElement : shape) {
if (pathElement instanceof MoveTo) {
MoveTo moveTo = (MoveTo) pathElement;
minX = maxX = moveTo.getX();
minY = maxY = moveTo.getY();
} else if (pathElement instanceof LineTo) {
LineTo lineTo = (LineTo) pathElement;
double x = lineTo.getX();
double y = lineTo.getY();
minX = Math.min(minX, x);
minY = Math.min(minY, y);
maxX = Math.max(maxX, x);
maxY = Math.max(maxY, y);
}
}
return new Rectangle2D(minX, minY, maxX - minX, maxY - minY);
}
项目: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
文件: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");
}
项目:graph-editor
文件:ArrowHead.java
/**
* Draws the arrow-head for its current size and position values.
*/
public void draw() {
getElements().clear();
getElements().add(new MoveTo(x, y + length / 2));
getElements().add(new LineTo(x + width / 2, y - length / 2));
if (radius > 0) {
final ArcTo arcTo = new ArcTo();
arcTo.setX(x - width / 2);
arcTo.setY(y - length / 2);
arcTo.setRadiusX(radius);
arcTo.setRadiusY(radius);
arcTo.setSweepFlag(true);
getElements().add(arcTo);
} else {
getElements().add(new LineTo(x - width / 2, y - length / 2));
}
getElements().add(new ClosePath());
}
项目:javafx-demos
文件:ShapesDemo.java
private void createMinus() {
Path minus = PathBuilder.create()
.elements(new MoveTo(0, 0),
new LineTo(0, 5),
new LineTo(15, 5),
new LineTo(15, 0),
new LineTo(0, 0))
.stroke(Color.web("#000000"))
.fill(Color.web("#FFFFFF"))
.strokeWidth(1)
.cursor(Cursor.HAND)
.build();
Circle c = CircleBuilder.create().radius(13).style("-fx-fill:-fx-base;").build() ;
StackPane sp = StackPaneBuilder.create().styleClass("close-btn")
.maxHeight(26).maxWidth(26)
.prefHeight(26).prefWidth(26)
.children(c,minus).build();
root.getChildren().add(sp);
}
项目:Enzo
文件: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;
}
项目:RichTextFX
文件:TextFlowExt.java
/**
* @param from The index of the first character.
* @param to The index of the last character.
* @return An array with the PathElement objects which define an
* underline from the first to the last character.
*/
PathElement[] getUnderlineShape(int from, int to) {
// get a Path for the text underline
PathElement[] shape = textLayout().getRange(from, to, TextLayout.TYPE_UNDERLINE, 0, 0);
// The shape is returned as a closed Path (a thin rectangle).
// If we use the Path as it is, this causes rendering issues.
// Hence we only use the MoveTo and the succeeding LineTo elements for the result
// so that simple line segments instead of rectangles are returned.
List<PathElement> result = new ArrayList<>();
boolean collect = false;
for (PathElement elem : shape) {
if (elem instanceof MoveTo) { // There seems to be no API to get the type of the PathElement
result.add(elem);
collect = true;
} else if (elem instanceof LineTo) {
if (collect) {
result.add(elem);
collect = false;
}
}
}
return result.toArray(new PathElement[0]);
}
项目:incubator-netbeans
文件:PuzzlePieces.java
Desk(int numOfColumns, int numOfRows) {
setStyle("-fx-background-color: #cccccc; " +
"-fx-border-color: #464646; " +
"-fx-effect: innershadow( two-pass-box , rgba(0,0,0,0.8) , 15, 0.0 , 0 , 4 );");
double DESK_WIDTH = Piece.SIZE * numOfColumns;
double DESK_HEIGHT = Piece.SIZE * numOfRows;
setPrefSize(DESK_WIDTH,DESK_HEIGHT);
setMaxSize(DESK_WIDTH, DESK_HEIGHT);
autosize();
// create path for lines
Path grid = new Path();
grid.setStroke(Color.rgb(70, 70, 70));
getChildren().add(grid);
// create vertical lines
for (int col = 0; col < numOfColumns - 1; col++) {
grid.getElements().addAll(
new MoveTo(Piece.SIZE + Piece.SIZE * col, 5),
new LineTo(Piece.SIZE + Piece.SIZE * col, Piece.SIZE * numOfRows - 5)
);
}
// create horizontal lines
for (int row = 0; row < numOfRows - 1; row++) {
grid.getElements().addAll(
new MoveTo(5, Piece.SIZE + Piece.SIZE * row),
new LineTo(Piece.SIZE * numOfColumns - 5, Piece.SIZE + Piece.SIZE * row)
);
}
}
项目:SunburstChart
文件:SunburstChart.java
private Path createSegment(final double START_ANGLE, final double END_ANGLE, final double INNER_RADIUS, final double OUTER_RADIUS, final Color FILL, final Color STROKE, final TreeNode NODE) {
double startAngleRad = Math.toRadians(START_ANGLE + 90);
double endAngleRad = Math.toRadians(END_ANGLE + 90);
boolean largeAngle = Math.abs(END_ANGLE - START_ANGLE) > 180.0;
double x1 = centerX + INNER_RADIUS * Math.sin(startAngleRad);
double y1 = centerY - INNER_RADIUS * Math.cos(startAngleRad);
double x2 = centerX + OUTER_RADIUS * Math.sin(startAngleRad);
double y2 = centerY - OUTER_RADIUS * Math.cos(startAngleRad);
double x3 = centerX + OUTER_RADIUS * Math.sin(endAngleRad);
double y3 = centerY - OUTER_RADIUS * Math.cos(endAngleRad);
double x4 = centerX + INNER_RADIUS * Math.sin(endAngleRad);
double y4 = centerY - INNER_RADIUS * Math.cos(endAngleRad);
MoveTo moveTo1 = new MoveTo(x1, y1);
LineTo lineTo2 = new LineTo(x2, y2);
ArcTo arcTo3 = new ArcTo(OUTER_RADIUS, OUTER_RADIUS, 0, x3, y3, largeAngle, true);
LineTo lineTo4 = new LineTo(x4, y4);
ArcTo arcTo1 = new ArcTo(INNER_RADIUS, INNER_RADIUS, 0, x1, y1, largeAngle, false);
Path path = new Path(moveTo1, lineTo2, arcTo3, lineTo4, arcTo1);
path.setFill(FILL);
path.setStroke(STROKE);
String tooltipText = new StringBuilder(NODE.getData().getName()).append("\n").append(String.format(Locale.US, formatString, NODE.getData().getValue())).toString();
Tooltip.install(path, new Tooltip(tooltipText));
path.setOnMousePressed(new WeakEventHandler<>(e -> NODE.getTreeRoot().fireTreeNodeEvent(new TreeNodeEvent(NODE, EventType.NODE_SELECTED))));
return path;
}
项目:marathonv5
文件:PathSample.java
public PathSample() {
super(180,90);
// Create path shape - square
Path path1 = new Path();
path1.getElements().addAll(
new MoveTo(25, 25),
new HLineTo(65),
new VLineTo(65),
new LineTo(25, 65),
new ClosePath()
);
path1.setFill(null);
path1.setStroke(Color.RED);
path1.setStrokeWidth(2);
// Create path shape - curves
Path path2 = new Path();
path2.getElements().addAll(
new MoveTo(100, 45),
new CubicCurveTo(120, 20, 130, 80, 140, 45),
new QuadCurveTo(150, 0, 160, 45),
new ArcTo(20, 40, 0, 180, 45, true, true)
);
path2.setFill(null);
path2.setStroke(Color.DODGERBLUE);
path2.setStrokeWidth(2);
// show the path shapes;
getChildren().add(new Group(path1, path2));
// REMOVE ME
setControls(
new SimplePropertySheet.PropDesc("Path 1 Stroke", path1.strokeProperty()),
new SimplePropertySheet.PropDesc("Path 2 Stroke", path2.strokeProperty())
);
// END REMOVE ME
}
项目:marathonv5
文件:PathSample.java
public PathSample() {
super(180,90);
// Create path shape - square
Path path1 = new Path();
path1.getElements().addAll(
new MoveTo(25, 25),
new HLineTo(65),
new VLineTo(65),
new LineTo(25, 65),
new ClosePath()
);
path1.setFill(null);
path1.setStroke(Color.RED);
path1.setStrokeWidth(2);
// Create path shape - curves
Path path2 = new Path();
path2.getElements().addAll(
new MoveTo(100, 45),
new CubicCurveTo(120, 20, 130, 80, 140, 45),
new QuadCurveTo(150, 0, 160, 45),
new ArcTo(20, 40, 0, 180, 45, true, true)
);
path2.setFill(null);
path2.setStroke(Color.DODGERBLUE);
path2.setStrokeWidth(2);
// show the path shapes;
getChildren().add(new Group(path1, path2));
// REMOVE ME
setControls(
new SimplePropertySheet.PropDesc("Path 1 Stroke", path1.strokeProperty()),
new SimplePropertySheet.PropDesc("Path 2 Stroke", path2.strokeProperty())
);
// END REMOVE ME
}
项目:GameAuthoringEnvironment
文件:PathCreator.java
/**
* Ends the current path if one is being created
*
* @param container
*/
public void endPath (Pane container) {
if (!myMakingPath) {
return;
}
myMakingPath = false;
container.setOnMouseMoved(null);
int last = myPath.getElements().size() - 1;
if (myPath.getElements().get(last) instanceof LineTo) {
myPath.getElements().remove(last);
}
}
项目:GameAuthoringEnvironment
文件:PathCreator.java
/**
* Overloads previous class to add a coordinate to the current
* path
*
* @param point
* @param container
*/
public void addToPath (Coordinate point, Pane container) {
if (!myMakingPath) {
return;
}
container.requestFocus();
myPath.getElements().add(new MoveTo(point.getX(), point.getY()));
LineTo line = new LineTo(point.getX(), point.getY());
myPath.getElements().add(line);
container.setOnMouseMoved(e -> followMouse(e, line));
}
项目:gemoc-studio-modeldebugging
文件:ValueView.java
private Shape getHatching(int length, int offset) {
final Path p = new Path();
for (int i = 0; i < (length / 2.5) + 1; i++) {
final double x1 = (i - 1) * 2.5 + offset;
final double y1 = 8;
final double x2 = (i + 1) * 2.5 + offset;
final double y2 = 0;
final MoveTo move = new MoveTo(x1, y1);
final LineTo line = new LineTo(x2, y2);
p.getElements().addAll(move, line);
p.setStrokeWidth(1);
}
return p;
}
项目:Hive_Game
文件:AnimationTile.java
public void initMovingAnimation(Image image,CoordGene<Integer> coordStart, CoordGene<Integer> coordEnd){
CoordGene<Double> start = new CoordGene<>((double) coordStart.getX(), (double) coordStart.getY());
CoordGene<Double> end = new CoordGene<>((double) coordEnd.getX(), (double) coordEnd.getY());
start = traductor.axialToPixel(start);
end = traductor.axialToPixel(end);
panCanvas.getChildren().add(this.getPolygon());
this.setImagePolygon(image);
this.setPath(new Path(
new MoveTo(start.getX() + traductor.getMoveOrigin().getX(), start.getY() + traductor.getMoveOrigin().getY()),
new LineTo(end.getX() + traductor.getMoveOrigin().getX(), end.getY() + traductor.getMoveOrigin().getY())));
}
项目:Hive_Game
文件:AnimationTile.java
public void initPlacingAnimation(Image image,CoordGene<Integer> coordEnd){
CoordGene<Double> start = new CoordGene<>((double) coordEnd.getX(), (double) 0);
CoordGene<Double> end = new CoordGene<>((double) coordEnd.getX(), (double) coordEnd.getY());
start = traductor.axialToPixel(start);
end = traductor.axialToPixel(end);
panCanvas.getChildren().add(this.getPolygon());
this.setImagePolygon(image);
this.setPath(new Path(
new MoveTo(start.getX() + traductor.getMoveOrigin().getX(), 0),
new LineTo(end.getX() + traductor.getMoveOrigin().getX(), end.getY() + traductor.getMoveOrigin().getY())));
}
项目:smoothcharts
文件:SmoothedChart.java
private void smooth(ObservableList<PathElement> strokeElements, ObservableList<PathElement> fillElements, final double HEIGHT) {
if (fillElements.isEmpty()) return;
// as we do not have direct access to the data, first recreate the list of all the data points we have
final Point2D[] dataPoints = new Point2D[strokeElements.size()];
for (int i = 0; i < strokeElements.size(); i++) {
final PathElement element = strokeElements.get(i);
if (element instanceof MoveTo) {
final MoveTo move = (MoveTo) element;
dataPoints[i] = new Point2D(move.getX(), move.getY());
} else if (element instanceof LineTo) {
final LineTo line = (LineTo) element;
final double x = line.getX(), y = line.getY();
dataPoints[i] = new Point2D(x, y);
}
}
double firstX = dataPoints[0].getX();
double lastX = dataPoints[dataPoints.length - 1].getX();
Point2D[] points = Helper.subdividePoints(dataPoints, getSubDivisions());
fillElements.clear();
fillElements.add(new MoveTo(firstX, HEIGHT));
strokeElements.clear();
strokeElements.add(new MoveTo(points[0].getX(), points[0].getY()));
for (Point2D p : points) {
if (Double.compare(p.getX(), firstX) >= 0) {
fillElements.add(new LineTo(p.getX(), p.getY()));
strokeElements.add(new LineTo(p.getX(), p.getY()));
}
}
fillElements.add(new LineTo(lastX, HEIGHT));
fillElements.add(new LineTo(0, HEIGHT));
fillElements.add(new ClosePath());
}
项目:smoothcharts
文件:SmoothedChart.java
private double[] getXYFromPathElement(final PathElement ELEMENT) {
if (ELEMENT instanceof MoveTo) {
return new double[]{ ((MoveTo) ELEMENT).getX(), ((MoveTo) ELEMENT).getY() };
} else if (ELEMENT instanceof LineTo) {
return new double[] { ((LineTo) ELEMENT).getX(), ((LineTo) ELEMENT).getY() };
} else {
return new double[] { -1, -1 };
}
}
项目:H-Uppaal
文件:JorkPresentation.java
private void initializeShape() {
final MoveTo p0 = new MoveTo(CORNER_SIZE, 0);
final LineTo l0 = new LineTo(JORK_WIDTH - CORNER_SIZE, 0);
final LineTo l1 = new LineTo(JORK_WIDTH, JORK_HEIGHT);
final LineTo l2 = new LineTo(0, JORK_HEIGHT);
final LineTo l3 = new LineTo(CORNER_SIZE, 0);
controller.shape.getElements().addAll(p0, l0, l1, l2, l3);
}
项目:ChatRoom-JavaFX
文件:Bubble.java
private void drawRectBubbleToplineIndicator() {
getElements().addAll(new MoveTo(1.0f, 1.2f),
new HLineTo(2.5f),
new LineTo(2.7f, 1.0f),
new LineTo(2.9f, 1.2f),
new HLineTo(4.4f),
new VLineTo(4f),
new HLineTo(1.0f),
new VLineTo(1.2f)
);
}
项目:ChatRoom-JavaFX
文件:Bubble.java
private void drawRectBubbleRightBaselineIndicator() {
getElements().addAll(new MoveTo(3.0f, 1.0f),
new HLineTo(0f),
new VLineTo(4f),
new HLineTo(3.0f),
new LineTo(2.8f, 3.8f),
new VLineTo(1f)
);
}
项目:ChatRoom-JavaFX
文件:Bubble.java
private void drawRectBubbleLeftBaselineIndicator() {
getElements().addAll(new MoveTo(1.2f, 1.0f),
new HLineTo(3f),
new VLineTo(4f),
new HLineTo(1.0f),
new LineTo(1.2f, 3.8f),
new VLineTo(1f)
);
}
项目:ChatRoom-JavaFX
文件:Bubble.java
private void drawRectBubbleRightCenterIndicator() {
getElements().addAll(new MoveTo(3.0f, 2.5f),
new LineTo(2.8f, 2.4f),
new VLineTo(1f),
new HLineTo(0f),
new VLineTo(4f),
new HLineTo(2.8f),
new VLineTo(2.7f),
new LineTo(3.0f, 2.5f)
);
}