//PerpRods.java import EinsteinObject; import java.awt.Graphics; import java.awt.Color; class PerpRods extends EinsteinObject { public PerpRods(double v, Einstein EIN) { super(v,EIN); length = 50; } public void draw(boolean whichFrame,Graphics g) { Reality displayReality; double position; double gamma; if (whichFrame == Reality.OBJECT_FRAME) { displayReality = getReality(); position = displayReality.myX; gamma = 1; } else { displayReality = EIN.getReality(); position = displayReality.theirX; gamma = displayReality.gamma; } int count = 5; boolean up =true; for (int loop=-5;loop<=5;loop++) { g.setColor(new Color(0,count,0)); if (up) { if (loop == 0) { up = false; } else count += 50; } else count -= 50; g.drawLine(EIN.space.mapX(position)-(int)(length/gamma),EIN.space.mapY(0)+loop,EIN.space.mapX(position)+(int)(length/gamma),EIN.space.mapY(0)+loop); g.drawLine(EIN.space.mapX(position)+loop,EIN.space.mapY(0)+length,EIN.space.mapX(position)+loop,EIN.space.mapY(0)-length); } } public void timeDraw(boolean whichFrame,Graphics g) { Reality real = EIN.getReality(); double gamma = real.gamma; if (EIN.frame == Reality.OBJECT_FRAME) { gamma = 1; real = EIN.mover.getReality(); g.setColor(Color.blue); EIN.time.drawPoint(real.myX-(length/gamma),real.myTime,g); EIN.time.drawPoint(real.myX+(length/gamma),real.myTime,g); g.setColor(Color.green); EIN.time.drawLine(real.myX-(length/gamma),real.myTime,-(length/gamma),0,g); EIN.time.drawLine(real.myX+(length/gamma),real.myTime,+(length/gamma),0,g); g.setColor(Color.red); EIN.time.drawPoint(real.theirX,real.myTime,g); g.setColor(Color.black); EIN.time.drawLine(real.theirX,real.myTime,0,0,g); } else { g.setColor(Color.red); EIN.time.drawPoint(real.myX,real.myTime,g); g.setColor(Color.blue); EIN.time.drawPoint(real.theirX-(length/gamma),real.myTime,g); EIN.time.drawPoint(real.theirX+(length/gamma),real.myTime,g); g.setColor(Color.green); EIN.time.drawLine(real.theirX-(length/gamma),real.myTime,-(length/gamma),0,g); EIN.time.drawLine(real.theirX+(length/gamma),real.myTime,(length/gamma),0,g); g.setColor(Color.black); EIN.time.drawLine(real.myX,real.myTime,0,0,g); } } }