diff --git a/Bicicleta.java b/Bicicleta.java index 69c4c93..d9c62dd 100644 --- a/Bicicleta.java +++ b/Bicicleta.java @@ -1,6 +1,7 @@ import java.lang.Math.*; + public class Bicicleta{ double x = 0; @@ -15,8 +16,8 @@ public class Bicicleta{ //Halla un vector con origen en el eje de coordenadas //Utilizando sus coordenadas polares, que en este caso //son el giro y la cantidad a avanzar - double nuevoX = n * Math.sin(this.giro); - double nuevoY = n * Math.cos(this.giro); + double nuevoX = n * Math.cos(this.giro); + double nuevoY = n * Math.sin(this.giro); //Suma los vectores para obtener la nueva posición //del punto diff --git a/Something.java b/Something.java new file mode 100644 index 0000000..a072003 --- /dev/null +++ b/Something.java @@ -0,0 +1,119 @@ +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"); + + } + +} \ No newline at end of file diff --git a/bic.png b/bic.png new file mode 100644 index 0000000..8320427 Binary files /dev/null and b/bic.png differ diff --git a/javacleta.png b/javacleta.png new file mode 100644 index 0000000..5372c73 Binary files /dev/null and b/javacleta.png differ