Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javafx.application.Application;
- import javafx.scene.Scene;
- import javafx.scene.layout.Pane;
- import javafx.scene.layout.StackPane;
- import javafx.scene.paint.Color;
- import javafx.scene.shape.Line;
- import javafx.stage.Stage;
- import java.awt.*;
- import java.util.ArrayList;
- import java.util.Collections;
- public class Test extends Application {
- public static void main(String[] args) {
- launch(args);
- }
- static final int WIDTH=800, HEIGHT=400;
- @Override
- public void start(Stage primaryStage) {
- Pane container = new Pane();
- ArrayList<Integer> a = new ArrayList<Integer>();
- a.add(5);
- a.add(3);
- a.add(5);
- a.add(8);
- a.add(16);
- StackPane sp = getStackPaneFromArray(a);
- container.getChildren().add(sp);
- Scene scene = new Scene(container, 800, 400);
- primaryStage.setScene(scene);
- primaryStage.show();
- }
- static StackPane getStackPaneFromArray(ArrayList<Integer> values) {
- StackPane stackPane = new StackPane();
- int min = Collections.min(values);
- int max = Collections.max(values);
- Point previousPoint = new Point(0,HEIGHT-((values.get(0)-min)*HEIGHT/(max-min)));
- Line test = new Line(0,HEIGHT-339,200,HEIGHT-339);
- test.setStroke(Color.RED);
- stackPane.getChildren().add(test);
- for(int i=1;i<values.size();i++) {
- Line line = new Line(previousPoint.x, previousPoint.y, i*WIDTH/(values.size()-1), HEIGHT-((values.get(i)-min)*HEIGHT/(max-min)));
- stackPane.getChildren().add(line);
- System.out.println("Drawing (" + previousPoint.x + ";" + previousPoint.y + ") to (" + (i*WIDTH/(values.size()-1)) + ";" + (HEIGHT-((values.get(0)-min)*HEIGHT/(max-min))) + ")");
- previousPoint = new Point(i*WIDTH/(values.size()-1),HEIGHT-((values.get(0)-min)*HEIGHT/(max-min)));
- }
- return stackPane;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement