• Nie Znaleziono Wyników

Ćwiczenie 12 sem.2

N/A
N/A
Protected

Academic year: 2021

Share "Ćwiczenie 12 sem.2"

Copied!
4
0
0

Pełen tekst

(1)

/* Ćwiczenie 12 sem.2

*/

// SYMULACJA KULI BILARDOWEJ

import java.awt.Color;

import java.awt.Graphics;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.Timer;

public class Animacja1 extends javax.swing.JFrame implements ActionListener { Kula K;

Timer timer = new Timer(10, this); //zegar tykający co 10 ms public Animacja1() { //konstruktor klasy Animacja1

initComponents();

setSize(600, 400);

setBackground(Color.yellow);

K = new Kula(10, 30, Color.red);

timer.start(); //uruchomienie zegara }

public void paint(Graphics g) {

g.clearRect(0, 0, getWidth(), getHeight());

K.przesuń(getWidth(), getHeight());

K.rysuj(g);

}

public void actionPerformed(ActionEvent e) { repaint();

}

public static void main(String args[]) { }

} // KONIEC KLASY ANIMACJA1

import java.awt.Color; // KLASA KULA import java.awt.Graphics;

public class Kula { Color kolor;

int x = 0, y = 0, d = 20, dx = 3, dy = 5;

public Kula(int x0, int y0, Color k) { //konstruktor klasy Kula x = x0;

y = y0;

kolor = k;

}

void rysuj(Graphics g){

g.setColor(kolor);

g.fillOval(x, y, d, d);

}

void przesuń(int zakresX, int zakresY) { x += dx;

y += dy; // zmiana położenia – przesunięcie o (dx, dy) if (x >= zakresX - d || x <= 0) {

dx = -dx; } // odbicie od krawędzi okna – zmiana kierunku ruchu if (y >= zakresY - d || y <= 30) { dy = -dy;}

} }

(2)

// SYMULACJA WIELU KUL import java.awt.Color;

import java.awt.Graphics;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.util.ArrayList;

import java.util.List;

import javax.swing.Timer;

public class Animacja2 extends javax.swing.JFrame implements ActionListener, MouseListener { Kula K;

List< Kula> LK = new ArrayList<>();

Timer timer = new Timer(10, this); //zegar tykający co 10 ms public Animacja2() { //konstruktor klasy Animacja2

initComponents();

setSize(600, 400);

setBackground(Color.yellow);

addMouseListener(this);

timer.start(); //uruchomienie zegara }

public void paint(Graphics g) {

g.clearRect(0, 0, getWidth(), getHeight());

for (Kula K : LK) {

K.przesuń(getWidth(), getHeight());

K.rysuj(g);

} }

public void actionPerformed(ActionEvent e) { repaint();

}

public void mouseClicked(MouseEvent e) { } public void mousePressed(MouseEvent e) { int x = e.getX();

int y = e.getY();

if (e.getButton() == MouseEvent.BUTTON1) {

K = new Kula(x, y, Color.red); // tworzenie kuli lewym przyciskiem myszy LK.add(K);

} else { LK.clear(); } //usuwanie wszystkich kul prawym lub środkowym przyciskiem myszy }

public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { }

public static void main(String args[]) { }

} // KONIEC KLASY ANIMACJA2

import java.awt.Color; // KLASA KULA import java.awt.Graphics;

public class Kula { Color kolor;

int x = 0, y = 0, d = 20, dx = 3, dy = 5;

public Kula(int x0, int y0, Color k) { //konstruktor klasy Kula x = x0;

y = y0;

kolor = k;

}

void rysuj(Graphics g){

g.setColor(kolor);

g.fillOval(x, y, d, d);

}

void przesuń(int zakresX, int zakresY) { x += dx;

y += dy; // zmiana położenia – przesunięcie o (dx, dy)

if (x >= zakresX - d || x <= 0) { dx = -dx; } // odbicie od krawędzi okna – zmiana kierunku ruchu if (y >= zakresY - d || y <=30) { dy = -dy;}

} }

(3)

/* Ćwiczenie 12 sem.2

*/

// SYMULACJA WAHADŁA MATEMATYCZNEGO import java.awt.Color;

import java.awt.Graphics;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import javax.swing.Timer;

public class Animacja3 extends javax.swing.JFrame implements ActionListener, KeyListener { Wahadło W;

Timer timer = new Timer(10, this); //zegar tykający co 10 ms public Animacja3() { //konstruktor klasy Animacja3 initComponents();

W = new Wahadło(getWidth() / 2, 30, 250, Color.blue);

setFocusable(true);

addKeyListener(this);

timer.start(); //uruchomienie zegara }

public void paint(Graphics g) {

g.clearRect(0, 0, getWidth(), getHeight());

W.wychyl();

W.rysuj(g);

}

public void actionPerformed(ActionEvent e) { repaint();

}

public void keyTyped(KeyEvent e) { } public void keyPressed(KeyEvent e) { int a = e.getKeyCode();

if (a == KeyEvent.VK_RIGHT) { W.zmień(0.05, 0); } // zmiana kąta wychylenia o 0.05 radiana if (a == KeyEvent.VK_LEFT) { W.zmień(-0.05, 0); }

if (a == KeyEvent.VK_UP) { W.zmień(0, -2); } // zmiana długości nitki o 2 piksele if (a == KeyEvent.VK_DOWN) { W.zmień(0, 2); }

if (a == KeyEvent.VK_SPACE) { W.stop(); } // zatrzymanie ruchu }

public void keyReleased(KeyEvent e) { int a = e.getKeyCode();

if (a == KeyEvent.VK_RIGHT || a == KeyEvent.VK_LEFT || a == KeyEvent.VK_UP || a == KeyEvent.VK_DOWN) { W.start();

} }

public static void main(String args[]) { }

} // KONIEC KLASY ANIMACJA3

import java.awt.Color; // KLASA WAHADŁO import java.awt.Graphics;

public class Wahadło {

double t; // czas

double alfa0, alfa; // początkowy i bieżący kąt wychylenia double dt = 0.004; // przyrost czasu

int x0, y0; // współrzędne punktu zaczepienia wahadła int d; // długość nitki

Color kolor; // kolor ciężarka

public Wahadło(int xp, int yp, int dl, Color k) { //konstruktor klasy Wahadło x0 = xp;

y0 = yp;

d = dl;

kolor = k;

}

(4)

void rysuj(Graphics g) { g.setColor(kolor);

int x = x0 + (int) (d * Math.sin(alfa)); // x, y – współrzędne położenia ciężarka wahadła int y = y0 + (int) (d * Math.cos(alfa));

g.drawLine(x0, y0, x, y); // linia od punktu x0, y0 do punktu x, y g.fillOval(x - 10, y - 10, 20, 20);

} // koło o średnicy 20, ze środkiem w punkcie x, y void start() {

t = 0; alfa0 = alfa;

}

void wychyl() { if (alfa0 != 0) {

t += dt; // przyrost czasu o wartość dt

alfa = alfa0 * Math.cos(Math.sqrt(981 / d / 0.0375) * t); //równanie wahadła matematycznego }

}

void zmień(double da, int dl) {

d += dl; if (d < 10) { d = 10; } // minimalna długość nitki wynosi 10 alfa = alfa + da;

alfa0 = 0;

}

void stop() { alfa0 = 0;

alfa = 0;

} }

Cytaty

Powiązane dokumenty

Współczynnik rozszerzalności objętościowej dwuskładnikowej cieczy nie jest średnią arytmetyczną ważoną współczynników odnoszących się do jego składników.. Gdyby tak było

[r]

Porównując parametry zebrane w Tabeli 2 wyciągnij wnioski, co do szybkości zachodzenia reakcji hydrosililowania, właściwości uzyskiwanych materiałów, ich stopnia

Badania prowadzone są na podstawie pomiarów XRD, wymagają kompleksowerego opracowania dyfraktogramów, w tym przeprowadzenia (w oparciu o posiadane w Pracowni XRD

Polega ona na pomiarze absorpcji promieniowania podczerwonego o różnej długości fali przez badaną próbkę znajdującą się na drodze wiązki.. Spektroskopia w podczerwieni

Praca skrzynek mieszających, przy zmienionych parametrach powietrza ciepłego:. 30

Andrzejewski Janusz poniedz.. Biegański Piotr

[r]