Water Applet Source Code

Aus Earthdawn-Wiki.v2
Version vom 22. Oktober 2024, 19:37 Uhr von Root (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Java2Html Plugin Import Java Applet Applet Import Java Awt Import Java Awt Event Import Java Awt Image Public Class Wave Applet Extends Applet Implements Runnable Int Width Int Height Int Old Mouse Y Int Size Int Swap Image Image Class Surface Float|{Java2HtmlPlugin import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.awt.image.*; public class WaveApplet extends Applet implements Runnable { int width; int height; int ol…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

{Java2HtmlPlugin import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.awt.image.*; public class WaveApplet extends Applet implements Runnable { int width; int height; int oldMouseY; int size; int swap; Image image; class Surface { float[ h; public Surface(int size) { h = new floatsize; } }; float[] v; Surface[] b; float[] s;

public WaveApplet() { }

public void init() { width = this.getWidth(); height = this.getHeight(); size = width; v = new floatsize; b = new Surface[] {new Surface(size), new Surface(size)}; s = new floatsize;

this.addMouseListener(new MouseListener() { public void mouseClicked(MouseEvent arg0) { } public void mouseEntered(MouseEvent arg0) { oldMouseY = arg0.getY(); } public void mouseExited(MouseEvent arg0) { } public void mousePressed(MouseEvent arg0) { } public void mouseReleased(MouseEvent arg0) { }});

this.addMouseMotionListener(new MouseMotionListener() {

public void mouseDragged(MouseEvent arg0) { }

public void mouseMoved(MouseEvent arg0) { rotate(oldMouseY-arg0.getY()); oldMouseY = arg0.getY(); } }); this.requestFocus(); image = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);

new Thread(this).start();

for (int i = 0; i < size; i++) { b[1].hi = 60; } for (int i = 0; i < size; i++) { b[2].hi = b[3].hi; }

for (int i = 0; i < size; i++) { si = (float) Math.sin((float)i*10/size)*(float)size/4+(float)size/3; } }

public void rotate(int v) { v=v*3; for (int i = 0; i < size; i++) { si+=v*((float)i-size/2)/size; } }

public void run() { while (true) { if (getGraphics() != null) { process(); paint(getGraphics()); } } }

private void process() { for (int j = 0; j < 2; j++) { Surface b0 = bswap; swap=(swap+1)%2; Surface b1 = bswap; float a = 0.05F; float b = 1F; float d = 0.003F; float g = 1F;

for (int i = 0; i < size-1; i++) {

if (b0.hi<0.1 && b0.hi+1<0.1) { vi = 0; continue; } // 1. Kräfte berechnen: Drücke float p0 = b0.hi+si; float pr = b0.hi+1+si+1;

// 2. Geschwindigkeiten aus Kräften bilden float dv = (p0-pr)*a;

// 3. Geschwindigkeiten aufsummieren vi += dv;

// 4. Dämpfung vi -= vi*d; }

for (int i = 0; i < size; i++) { b1.hi = b0.hi; }

for (int i = 0; i < size-1; i++) { float dh = vi*b; b1.hi-=dh; b1.hi+1+=dh; } } }

public void paint(Graphics g) { Graphics vg = image.getGraphics(); vg.setColor(Color.BLACK); vg.fillRect(0, 0, width, height); int wd = width/size; Surface buffa = bswap; for (int i = 1; i < buffa.h.length-1; i++) { int y = (int) (buffa.hi+si); int y1 = (int) si; vg.setColor(Color.BLUE); vg.fillRect((i * wd), height-y, wd, y-y1); vg.setColor(Color.DARK_GRAY); vg.fillRect((i * wd), height-y1, wd, y1); } g.drawImage(image, 0, 0, width, height, this); }

} }]

  1. 0
  2. 1
  3. 0