/* * h3b.java - revised 18 Apr 05 - width 401, height 71 * @author jackord@kw.igs.net */ import java.applet.Applet; import java.awt.*; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class h3b extends Applet implements ActionListener { String bs = "Run"; Button b = new Button(bs); int k=0; public void init() { setLayout(new FlowLayout(FlowLayout.LEFT)); setBackground(new Color(211, 211, 211)); add(b); b.addActionListener(this); } public void paint(Graphics g) { g.drawRect(0, 0, 400, 70); if (k==1) { double gr, l, s, sm, ds, t, v1, v2, dt, v, a; int n=400; gr=9.8; l=9.8; sm=l*Math.PI/2; ds=2*sm/n; t=0; v1=0; for (int i=1; i<=n-1; i=i+1) { s=sm-i*ds; v2=Math.sqrt(2*gr*l*(Math.cos(s/l)-Math.cos(sm/l))); t=t+2/(v1+v2); v1=v2; } t=2*(t+2/v1)*ds; g.drawString("90 deg amplitude Tvbar = "+(float)t, 100, 20); dt=.01; t=0; s=sm; v=0; a=-gr*Math.sin(s/l); v=v+a*dt/2; do { t=t+dt; s=s+v*dt; a=-gr*Math.sin(s/l); v=v+a*dt; } while (v<0); t=2*(t+dt/2-v/a); g.drawString("90 deg amplitude Tfeyn = "+(float)t, 100, 40); t=t/2/Math.PI-1; g.drawString("Increase over small angle T = "+((int)(1000*t))/10+" %", 100, 60); } } public void actionPerformed(ActionEvent e) { String tst; tst=e.getActionCommand(); if (bs.equals(tst)) { k=1; } repaint(); } }