import java.awt.*; //import java.awt.Component.*; import java.awt.event.*; import java.applet.Applet; public class area extends Applet { CurvePanel mainpanel; Button resetButton; Panel buttonPanel = new Panel(); Choice sampleChooser = new Choice(); String sample="Left Endpoints"; Choice numberBoxesChooser = new Choice(); String numberBoxes="2"; int numBox=2; String shapes="rectangles"; double area; int sampleShift=0; ActionListener resetListener = new ActionListener() { public void actionPerformed (ActionEvent e) { sample = sampleChooser.getSelectedItem(); numberBoxes = numberBoxesChooser.getSelectedItem(); mainpanel.repaint(); } }; double f(long x) {if (x<246) return 465491587/2519424.-455/544195584.*x*x*x+17563/30233088.*x*x-675311/5038848.*x; else return 387477211/5038848.+6097/1088391168.*x*x*x-264173/60466176.*x*x+11413129/10077696.*x;} //return 220-91*(1-(x-174)*(x-174)/82944.0);} //288^2=82944 public void init(){ setBackground(Color.white); mainpanel = new CurvePanel(); setLayout(new BorderLayout()); add("Center",mainpanel); add("South",buttonPanel); buttonPanel.setLayout(new GridLayout(1,3)); resetButton = new Button("reset & redraw"); resetButton.addActionListener(resetListener); sampleChooser.addItem("Left Endpoints"); sampleChooser.addItem("Midpoints"); sampleChooser.addItem("Right Endpoints"); sampleChooser.addItem("Arbitrary Points"); sampleChooser.addItem("Trapezoids"); numberBoxesChooser.addItem("2"); numberBoxesChooser.addItem("4"); numberBoxesChooser.addItem("6"); numberBoxesChooser.addItem("12"); numberBoxesChooser.addItem("18"); numberBoxesChooser.addItem("36"); buttonPanel.add(sampleChooser); buttonPanel.add(numberBoxesChooser); buttonPanel.add(resetButton); } public class CurvePanel extends Panel { public void paint(Graphics g){ g.setColor(Color.black); g.drawRect(0,0,499,299); //box it g.drawLine(0, 220, 485, 220); //x-axis g.drawLine(30, 134, 30, 240); //y-axis for (int i = 0; i<=20; i+=10) { //y-ticks int y=220-i*4; g.drawLine(25, y, 35, y); g.drawString(""+i,14,y); } for (int i=10; i<=110; i+=10) { //x-ticks int x=i*4+30; g.drawLine(x,215,x,225); g.drawString(""+i,x-7,235); } g.drawString("x",485,210); g.drawString("y",35,134); g.setColor(Color.yellow); for (int i = 10; i<=20; i+=10) { //y-grid int y=220-i*4; g.drawLine(35, y, 470, y); } for (int i=10; i<=110; i+=10) { //x-grid int x=i*4+30; g.drawLine(x,215,x,140); } if (numberBoxes=="2") numBox=2; else { if (numberBoxes=="4") numBox=4; else { if (numberBoxes=="6") numBox=6; else { if (numberBoxes=="12") numBox=12; else { if (numberBoxes=="18") numBox=18; else numBox=36; } } } } g.setColor(Color.blue); for (int x = 30 ; x < 462 ; x+=4) { //curve g.drawLine(x, (int)f(x), x+4, (int)f(x+4)); g.drawLine(x, (int)f(x)+1, x+4, (int)f(x+4)+1); g.drawLine(x, (int)f(x)-1, x+4, (int)f(x+4)-1); } g.drawLine(30,220,30,(int)f(30));g.drawLine(29,220,29,(int)f(29));g.drawLine(31,220,31,(int)f(31)); g.drawLine(30,220,462,220);g.drawLine(30,219,461,219);g.drawLine(30,221,462,221); g.setColor(Color.red); int boxWidth=432/numBox; area=0; if (sample=="Left Endpoints") sampleShift=0; else { if (sample=="Right Endpoints") sampleShift=boxWidth; else sampleShift=boxWidth/2; //midpoint } if (sample != "Trapezoids"){ shapes="rectangles"; for (int box=0; box