Compare commits
3 Commits
TranslateO
...
master
Author | SHA1 | Date | |
---|---|---|---|
![]() |
f3c3dc5fc0 | ||
![]() |
2398e3c8a4 | ||
![]() |
416f890de2 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
||||
/build/
|
||||
/dist/
|
||||
|
@ -12,7 +12,9 @@ import javax.swing.WindowConstants;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author ahren
|
||||
* Programm, um mit Hilfe von Sinus und Cosinus drei sich drehende Zeiger zu
|
||||
* implementieren.
|
||||
* @author Je-To
|
||||
*/
|
||||
public class Start
|
||||
{
|
||||
@ -21,7 +23,6 @@ public class Start
|
||||
JFrame frm = new JFrame();
|
||||
frm.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
|
||||
Container c = frm.getContentPane();
|
||||
|
||||
c.setLayout(new OverlayLayout(c));
|
||||
for (int zeigerLaenge = 1; zeigerLaenge <=3; zeigerLaenge++)
|
||||
{
|
||||
|
@ -15,18 +15,21 @@ import static java.lang.Math.*;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.Future;
|
||||
import java.util.logging.Logger;
|
||||
import javax.swing.JComponent;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author ahren
|
||||
* Klasse für selbst gezeichnete Zeiger, die sich über einenn eigenen Thread
|
||||
* drehen können.
|
||||
* @author Je-To
|
||||
*/
|
||||
public class Zeiger extends JComponent implements Runnable
|
||||
{
|
||||
private Logger lg = Logger.getLogger("grafik");
|
||||
private static final float DICKE = 4f;
|
||||
private Line2D.Float linie;
|
||||
private BasicStroke stift;
|
||||
private volatile float radius;
|
||||
private volatile double radius;
|
||||
private volatile float xMitte;
|
||||
private volatile float yMitte;
|
||||
private volatile double xAussen;
|
||||
@ -37,6 +40,12 @@ public class Zeiger extends JComponent implements Runnable
|
||||
private ExecutorService eService;
|
||||
private Future task;
|
||||
|
||||
/**
|
||||
* Initialisierung des Zeigers
|
||||
* @param schlafzeit = Zeit, die der Thread wartet, bevor der Zeiger sich
|
||||
* wieder weiterbewegt
|
||||
* @param zeigerlaenge = verhältnismäßige Zeigerlänge
|
||||
*/
|
||||
public Zeiger(long schlafzeit, int zeigerlaenge)
|
||||
{
|
||||
this.schlafzeit = schlafzeit;
|
||||
@ -48,17 +57,17 @@ public class Zeiger extends JComponent implements Runnable
|
||||
task = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Thread für das Ändern des Winkels
|
||||
*/
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
float delta = 1f;
|
||||
while(true)
|
||||
{
|
||||
synchronized(this)
|
||||
{
|
||||
alpha += 0.1;
|
||||
xAussen = xMitte +cos(2*PI*alpha) * radius;
|
||||
yAussen = yMitte + sin(2*PI*alpha) * radius;
|
||||
alpha += 0.08;
|
||||
}
|
||||
this.repaint();
|
||||
try
|
||||
@ -67,7 +76,7 @@ public class Zeiger extends JComponent implements Runnable
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//lg.severe(ex.toString());
|
||||
lg.severe(ex.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -79,25 +88,32 @@ public class Zeiger extends JComponent implements Runnable
|
||||
task = eService.submit(this);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Zeichnen des Zeigers abhängig vom Winkel Alpha
|
||||
* @param g
|
||||
*/
|
||||
@Override
|
||||
public void paintComponent(Graphics g)
|
||||
{
|
||||
super.paintComponent(g);
|
||||
Graphics2D g2 = (Graphics2D)g;
|
||||
|
||||
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
|
||||
RenderingHints.VALUE_ANTIALIAS_ON);
|
||||
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
|
||||
|
||||
float breite = this.getWidth() - 1;
|
||||
float hoehe = this.getHeight() - 1;
|
||||
|
||||
|
||||
float radius = (min(hoehe, breite)/2 - 50) * 1/ zeigerlaenge;
|
||||
radius = (min(hoehe, breite)/2 * 0.9) * 1/ zeigerlaenge;
|
||||
|
||||
xMitte = breite/2;
|
||||
yMitte = hoehe/2;
|
||||
|
||||
synchronized(this)
|
||||
{
|
||||
xAussen = xMitte +cos(2*PI*alpha) * radius;
|
||||
yAussen = yMitte + sin(2*PI*alpha) * radius;
|
||||
}
|
||||
|
||||
linie.setLine(xMitte, yMitte, xAussen, yAussen);
|
||||
|
||||
@ -105,7 +121,6 @@ public class Zeiger extends JComponent implements Runnable
|
||||
g2.setPaint(Color.RED);
|
||||
g2.draw(linie);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user