import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.layout.Pane; import javafx.scene.paint.Color; import javafx.scene.shape.ArcType; import javafx.stage.Stage; import java.io.FileInputStream; import java.io.FileNotFoundException; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import Bicicleta; public class Something extends Application { public static void main(String[] args) { Application.launch(args); } @Override public void start(Stage stage) { Canvas canvas = new Canvas(400, 400); GraphicsContext gc = canvas.getGraphicsContext2D(); gc.setLineWidth(2.0); Bicicleta bicicleta = new Bicicleta(); mover(gc, bicicleta, 50); mover(gc, bicicleta, 50, 1.5708); mover(gc, bicicleta, 50, 0); mover(gc, bicicleta, 50, 1.5708); mover(gc, bicicleta, 50, 0); mover(gc, bicicleta, 50, 1.5708); mover(gc, bicicleta, 50, 3.14159); mover(gc, bicicleta, 25, 4.71239); mover(gc, bicicleta, 100, 0.523599); mover(gc, bicicleta, 100, 5.23599); //gc.strokeLine(200, 50, 300, 50); //gc.strokeLine(0, 0, 300, 50); try{ //FileInputStream inputstream = new FileInputStream("file:javacleta.png"); FileInputStream inputstream = new FileInputStream("javacleta.png"); //se setea el tamaño de la imagen! Image img = new Image(inputstream, 50, 50, false, false); //gc.drawImage(img, 0, 0); //es 350 menos porque se toma en cuenta el tamaño de la imagen! gc.drawImage(img, bicicleta.x, 350-bicicleta.y); }catch(FileNotFoundException e){ System.out.println("Ocurió un error en la carga de imagen!"); System.out.println(e.getMessage()); }catch(Exception e){ System.out.println("error: no se pudo cargar la imagen"); System.out.println(e.getMessage()); } Pane root = new Pane(); root.setStyle("-fx-padding: 10;" + "-fx-border-style: solid inside;" + "-fx-border-width: 2;" + "-fx-border-insets: 5;" + "-fx-border-radius: 5;" + "-fx-border-color: blue;"); root.getChildren().add(canvas); Scene scene = new Scene(root); stage.setScene(scene); stage.setTitle("Óyeme Carlos llévame en tu Bicicleta"); stage.show(); } //Mueve la bicicleta y dibuja su recorrido //Recibe como parámetro la distancia y dirección de la bicicleta private void mover(GraphicsContext gc, Bicicleta bicicleta, double distancia, double direccion){ double xInicial = 10+bicicleta.x; //El 400 se le resta para que aparezca hacia abajo, pues las coordenadas están invertidas double yInicial = 400-bicicleta.y; bicicleta.girar(direccion); bicicleta.avanzar(distancia); double xFinal = 10+bicicleta.x; double yFinal = 400-bicicleta.y; gc.strokeLine(xInicial, yInicial, xFinal, yFinal); System.out.println(bicicleta.x+" "+ bicicleta.y+" elo"); } //Mueve la bicicleta y dibuja su recorrido //Recibe como parámetro solo la distancia //Avanza en la dirección que ya tenía private void mover(GraphicsContext gc, Bicicleta bicicleta, double distancia){ double xInicial = 10+bicicleta.x; double yInicial = 400-bicicleta.y; bicicleta.avanzar(distancia); double xFinal = 10+bicicleta.x; double yFinal = 400-bicicleta.y; gc.strokeLine(xInicial, yInicial, xFinal, yFinal); System.out.println(bicicleta.x+" "+ bicicleta.y+"alo"); } }