Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main;
- import javafx.application.Application;
- import javafx.scene.Group;
- import javafx.scene.Scene;
- import javafx.scene.canvas.Canvas;
- import javafx.scene.canvas.GraphicsContext;
- import javafx.stage.Stage;
- public class Turtle extends Application {
- double angle = 90;
- double oldX = 0;
- double oldY = 300;
- double x = 0;
- double y = 300;
- GraphicsContext gc;
- public static void main(String[] args) {
- launch(args);
- }
- @Override
- public void start(Stage primaryStage) {
- primaryStage.setTitle("Schildkroeten und Fraktale <3");
- Group root = new Group();
- Canvas canvas = new Canvas(600, 600);
- gc = canvas.getGraphicsContext2D();
- root.getChildren().add(canvas);
- primaryStage.setScene(new Scene(root));
- primaryStage.show();
- //hier Methoden aufrufen
- koch(600,5);
- }
- private void _zeroKoch(double length){
- forward(length / 3);
- turn(-60);
- forward(length / 3);
- turn(120);
- forward(length / 3);
- turn(-60);
- forward(length / 3);
- }
- public void koch(double length, int depth){
- if(depth == 1) {
- _zeroKoch(length);
- return;
- }
- koch(length / 3, depth - 1);
- turn(-60);
- koch(length / 3, depth - 1);
- turn(120);
- koch(length / 3, depth - 1);
- turn(-60);
- koch(length / 3, depth - 1);
- }
- public void turn( double degree ){
- if ( (angle += degree) > 360 )
- angle %= 360;
- }
- public void forward( double step ){
- oldX = x;
- oldY = y;
- x += step * Math.sin( Math.toRadians( angle ) );
- y -= step * Math.cos( Math.toRadians( angle ) );
- gc.strokeLine( (int) x, (int) y, (int) oldX, (int) oldY );
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement