Skip to content

gravity (Schwerkraft)

Wikipedia: Gravitation

Info

Die Einheit der Schwerkraft (Gewichtskraft) ist das Newton (\(N\)), da Schwerkraft eine Kraft ist (Masse mal Beschleunigung: \(F_G = m \cdot g\)). Während die Masse in Kilogramm (\(kg\)) gemessen wird, wird die Stärke der Gravitationsbeschleunigung (Ortsfaktor \(g\)) oft in \(\frac{N}{kg}\) oder \(\frac{m}{s^{2}}\) (ca. \(\frac{N}{kg}\) auf der Erde) angegeben. 1

Methoden in der Klasse Scene:

Methoden in der Klasse Layer:

public class GravityDemo extends Scene implements KeyStrokeListener
{
    private final Circle circle;

    public GravityDemo()
    {
        camera().meter(45);
        circle = new Circle();
        circle.makeDynamic();
        add(circle);
        gravity(0, -9.81);
        // oben
        createBorder(-5, 4.5, false);
        // unten
        createBorder(-5, -5, false);
        // links
        createBorder(-5, -5, true);
        // rechts
        createBorder(4.5, -5, true);
    }

    private Rectangle createBorder(double x, double y, boolean vertical)
    {
        Rectangle rectangle = !vertical ? new Rectangle(10, 0.5)
                : new Rectangle(0.5, 10);
        rectangle.position(x, y);
        rectangle.makeStatic();
        add(rectangle);
        return rectangle;
    }

    @Override
    public void onKeyDown(KeyEvent e)
    {
        switch (e.getKeyCode())
        {
        case KeyEvent.VK_UP -> gravity(0, 9.81);
        case KeyEvent.VK_DOWN -> gravity(0, -9.81);
        case KeyEvent.VK_RIGHT -> gravity(9.81, 0);
        case KeyEvent.VK_LEFT -> gravity(-9.81, 0);
        case KeyEvent.VK_SPACE -> circle.sleep();
        }
    }

    @Override
    public void gravity(double x, double y)
    {
        // Die Figur muss aufgeweckt werden, falls sie zur Ruhe gekommen ist.
        // Sonst wirkt eine Änderung der Gravitation nicht.
        circle.awake();
        super.gravity(x, y);
    }

    public static void main(String[] args)
    {
        Controller.instantMode(false);
        Controller.start(new GravityDemo());
    }
}
Zum Java-Code: demos/docs/physics/GravityDemo.java