Java Reference
In-Depth Information
Polygon shape # new Polygon();
// the device's shape in local coords
Robot robot; // a reference to the robot
Position robotPos # new Position();
// the robot's current position
Position localPos;
// the device position on the robot
public Device(String name, Robot robot,
Position local, Environment env) {
this .name # name;
this .robot # robot;
robot.readPosition( this .robotPos);
this .localPos # local;
this .environment # env;
}
// this method is invoked when the geometric shape of the
// device is defined
public void addPoint( int x, int y) {
shape.addPoint(x, y);
}
// draws the device's geometric shape on the graphical
// interface
public void paint(Graphics g) {
// reads the robot's current position
robot.readPosition(robotPos);
// draws the shape
Polygon globalShape # new Polygon();
Point2D point # new Point2D.Double();
for ( int i # 0; i < shape.npoints; i !! ) {
point.setLocation(shape.xpoints[i], shape.ypoints[i]);
// calculates the coordinates of the point
// according to the local position
localPos.rototras(point);
// calculates the coordinates of the point
// according to the robot position
robotPos.rototras(point);
// adds the point to the global shape
globalShape.addPoint(( int )Math.round(point.getX()),
( int )Math.round(point.getY()));
}
((Graphics2D) g).drawPolygon(globalShape);
}
}
Class Platform inherits from the abstract class Device and defines the
shape of the robot's platform. Its local position is set to zero since the
platform's reference frame coincides with the robot's reference frame.
Search WWH ::




Custom Search