import java.awt.geom.Line2D;
public class AltosSiteMapTile extends JLayeredPane {
- Point2D.Double coord_pt;
- Point2D.Double last_pt;
-
JLabel mapLabel;
JLabel draw;
Graphics2D g2d;
Color.BLACK // landed
};
- boolean drawn_landed_circle = false;
- boolean drawn_boost_circle = false;
- public void show(AltosState state, int crc_errors, Point2D.Double pt) {
- if (last_pt == null) {
- // setLocation(state.pad_lat, state.pad_lon);
- // loadMap();
- last_pt = pt;
- }
-
- if (pt != last_pt) {
- if (0 <= state.state && state.state < stateColors.length) {
- g2d.setColor(stateColors[state.state]);
- }
- g2d.draw(new Line2D.Double(last_pt, pt));
- }
-
- int px_size = getWidth();
- if (0 <= pt.x && pt.x < px_size) {
- if (0 <= pt.y && pt.y < px_size) {
- int dx = 500, dy = 250;
- if (state.state > 2) {
- dx = Math.min(200, 20 + (int) Math.abs(last_pt.x - pt.x));
- dy = Math.min(100, 10 + (int) Math.abs(last_pt.y - pt.y));
- }
- Rectangle r = new Rectangle((int)pt.x-dx, (int)pt.y-dy,
- dx*2, dy*2);
- scrollRectToVisible(r);
- }
+ private boolean drawn_landed_circle = false;
+ private boolean drawn_boost_circle = false;
+ public synchronized void show(AltosState state, int crc_errors,
+ Point2D.Double last_pt, Point2D.Double pt)
+ {
+ if (0 <= state.state && state.state < stateColors.length) {
+ g2d.setColor(stateColors[state.state]);
}
+ g2d.draw(new Line2D.Double(last_pt, pt));
if (state.state == 3 && !drawn_boost_circle) {
drawn_boost_circle = true;
g2d.drawOval((int)pt.x-35, (int)pt.y-35, 70, 70);
}
- last_pt = pt;
repaint();
}
draw = new JLabel();
g2d = fillLabel(draw, new Color(127, 127, 127, 0), px_size);
+ g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
+ RenderingHints.VALUE_ANTIALIAS_ON);
+ g2d.setStroke(new BasicStroke(6, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND));
draw.setBounds(0, 0, px_size, px_size);
draw.setOpaque(false);