import java.awt.*; public class Cannon { public Cannon(Point location) { loc = location; setAngle(45); } private final Point loc; private int angle; private double radianAngle; public void setAngle(int a){ angle = a; radianAngle = angle * Math.PI / 180.0; } public Ball fire(){ Ball cannonBall = new CannonBall(new Point(loc),10, 15 * Math.cos(radianAngle), -12 * Math.sin(radianAngle)); return cannonBall; } public void paint(Graphics g){ int barrelLength = 40; int barrelWidth = 8; int wheelRadius = 12; //draw wheel g.drawOval(loc.x - wheelRadius, loc.y - wheelRadius, 2 * wheelRadius, 2 * wheelRadius); int lv = (int) (barrelLength * Math.sin(radianAngle)); int lh = (int) (barrelLength * Math.cos(radianAngle)); int sh = (int) (barrelWidth * Math.sin(radianAngle)); int sv = (int) (barrelWidth * Math.cos(radianAngle)); //draw barrel g.drawLine(loc.x-sh, loc.y-sv, loc.x+sh, loc.y+sv); g.drawLine(loc.x-sh, loc.y-sv, loc.x+lh-sh, loc.y-lv-sv); g.drawLine(loc.x+sh, loc.y+sv, loc.x+lh+sh, loc.y-lv+sv); g.drawLine(loc.x+lh-sh, loc.y-lv-sv, loc.x+lh+sh, loc.y-lv+sv); } }