<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://blutwald.de/index.php?action=history&amp;feed=atom&amp;title=Water_Applet_Source_Code</id>
	<title>Water Applet Source Code - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://blutwald.de/index.php?action=history&amp;feed=atom&amp;title=Water_Applet_Source_Code"/>
	<link rel="alternate" type="text/html" href="https://blutwald.de/index.php?title=Water_Applet_Source_Code&amp;action=history"/>
	<updated>2026-04-17T23:42:20Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Earthdawn-Wiki.v2</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://blutwald.de/index.php?title=Water_Applet_Source_Code&amp;diff=4266&amp;oldid=prev</id>
		<title>Root: 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…“</title>
		<link rel="alternate" type="text/html" href="https://blutwald.de/index.php?title=Water_Applet_Source_Code&amp;diff=4266&amp;oldid=prev"/>
		<updated>2024-10-22T18:37:49Z</updated>

		<summary type="html">&lt;p&gt;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…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[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 &lt;br /&gt;
&lt;br /&gt;
import java.applet.Applet;&lt;br /&gt;
import java.awt.*;&lt;br /&gt;
import java.awt.event.*;&lt;br /&gt;
import java.awt.image.*;&lt;br /&gt;
&lt;br /&gt;
public class WaveApplet extends Applet implements Runnable {&lt;br /&gt;
&lt;br /&gt;
int width;&lt;br /&gt;
int height;&lt;br /&gt;
int oldMouseY;&lt;br /&gt;
int size;&lt;br /&gt;
int swap;&lt;br /&gt;
Image image;&lt;br /&gt;
class Surface {&lt;br /&gt;
float[]] h;&lt;br /&gt;
public Surface(int size) {&lt;br /&gt;
h = new float[[Size|size]];&lt;br /&gt;
}&lt;br /&gt;
};&lt;br /&gt;
float[] v;&lt;br /&gt;
Surface[] b;&lt;br /&gt;
float[] s;&lt;br /&gt;
&lt;br /&gt;
public WaveApplet() {&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void init() {&lt;br /&gt;
width = this.getWidth();&lt;br /&gt;
height = this.getHeight();&lt;br /&gt;
size = width;&lt;br /&gt;
v = new float[[Size|size]];&lt;br /&gt;
b = new Surface[] {new Surface(size), new Surface(size)};&lt;br /&gt;
s = new float[[Size|size]];&lt;br /&gt;
&lt;br /&gt;
this.addMouseListener(new MouseListener() {&lt;br /&gt;
public void mouseClicked(MouseEvent arg0) {&lt;br /&gt;
}&lt;br /&gt;
public void mouseEntered(MouseEvent arg0) {&lt;br /&gt;
oldMouseY = arg0.getY();&lt;br /&gt;
}&lt;br /&gt;
public void mouseExited(MouseEvent arg0) {&lt;br /&gt;
}&lt;br /&gt;
public void mousePressed(MouseEvent arg0) {&lt;br /&gt;
}&lt;br /&gt;
public void mouseReleased(MouseEvent arg0) {&lt;br /&gt;
}});&lt;br /&gt;
&lt;br /&gt;
this.addMouseMotionListener(new MouseMotionListener() {&lt;br /&gt;
&lt;br /&gt;
public void mouseDragged(MouseEvent arg0) {&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void mouseMoved(MouseEvent arg0) {&lt;br /&gt;
rotate(oldMouseY-arg0.getY());&lt;br /&gt;
oldMouseY = arg0.getY();&lt;br /&gt;
}&lt;br /&gt;
});&lt;br /&gt;
this.requestFocus();&lt;br /&gt;
image = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);&lt;br /&gt;
&lt;br /&gt;
new Thread(this).start();&lt;br /&gt;
&lt;br /&gt;
for (int i = 0; i &amp;lt; size; i++) {&lt;br /&gt;
b&amp;lt;ref&amp;gt;0&amp;lt;/ref&amp;gt;.h[[I|i]] = 60;&lt;br /&gt;
}&lt;br /&gt;
for (int i = 0; i &amp;lt; size; i++) {&lt;br /&gt;
b&amp;lt;ref&amp;gt;1&amp;lt;/ref&amp;gt;.h[[I|i]] = b&amp;lt;ref&amp;gt;0&amp;lt;/ref&amp;gt;.h[[I|i]];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
for (int i = 0; i &amp;lt; size; i++) {&lt;br /&gt;
s[[I|i]] = (float) Math.sin((float)i*10/size)*(float)size/4+(float)size/3;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void rotate(int v) {&lt;br /&gt;
v=v*3;&lt;br /&gt;
for (int i = 0; i &amp;lt; size; i++) {&lt;br /&gt;
s[[I|i]]+=v*((float)i-size/2)/size;&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void run() {&lt;br /&gt;
while (true) {&lt;br /&gt;
if (getGraphics() != null) {&lt;br /&gt;
process();&lt;br /&gt;
paint(getGraphics());&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
private void process() {&lt;br /&gt;
for (int j = 0; j &amp;lt; 2; j++) {&lt;br /&gt;
Surface b0 = b[[Swap|swap]];&lt;br /&gt;
swap=(swap+1)%2;&lt;br /&gt;
Surface b1 = b[[Swap|swap]];&lt;br /&gt;
float a = 0.05F;&lt;br /&gt;
float b = 1F;&lt;br /&gt;
float d = 0.003F;&lt;br /&gt;
float g = 1F;&lt;br /&gt;
&lt;br /&gt;
for (int i = 0; i &amp;lt; size-1; i++) {&lt;br /&gt;
&lt;br /&gt;
if (b0.h[[I|i]]&amp;lt;0.1 &amp;amp;&amp;amp; b0.h[[I1|i+1]]&amp;lt;0.1) {&lt;br /&gt;
v[[I|i]] = 0;&lt;br /&gt;
continue;&lt;br /&gt;
}&lt;br /&gt;
// 1. Kräfte berechnen: Drücke               &lt;br /&gt;
float p0 = b0.h[[I|i]]+s[[I|i]];&lt;br /&gt;
float pr = b0.h[[I1|i+1]]+s[[I1|i+1]];&lt;br /&gt;
&lt;br /&gt;
// 2. Geschwindigkeiten aus Kräften bilden&lt;br /&gt;
float dv = (p0-pr)*a; &lt;br /&gt;
&lt;br /&gt;
// 3. Geschwindigkeiten aufsummieren&lt;br /&gt;
v[[I|i]] += dv;&lt;br /&gt;
&lt;br /&gt;
// 4. Dämpfung&lt;br /&gt;
v[[I|i]] -= v[[I|i]]*d;&lt;br /&gt;
}          &lt;br /&gt;
&lt;br /&gt;
for (int i = 0; i &amp;lt; size; i++) {&lt;br /&gt;
b1.h[[I|i]] = b0.h[[I|i]];&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
for (int i = 0; i &amp;lt; size-1; i++) {&lt;br /&gt;
float dh = v[[I|i]]*b;&lt;br /&gt;
b1.h[[I|i]]-=dh; &lt;br /&gt;
b1.h[[I1|i+1]]+=dh;&lt;br /&gt;
}          &lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
public void paint(Graphics g) {&lt;br /&gt;
Graphics vg = image.getGraphics();&lt;br /&gt;
vg.setColor(Color.BLACK);&lt;br /&gt;
vg.fillRect(0, 0, width, height);&lt;br /&gt;
int wd = width/size;&lt;br /&gt;
Surface buffa = b[[Swap|swap]];&lt;br /&gt;
for (int i = 1; i &amp;lt; buffa.h.length-1; i++) {&lt;br /&gt;
int y = (int) (buffa.h[[I|i]]+s[[I|i]]);&lt;br /&gt;
int y1 = (int) s[[I|i]];&lt;br /&gt;
vg.setColor(Color.BLUE);&lt;br /&gt;
vg.fillRect((i * wd), height-y, wd, y-y1);&lt;br /&gt;
vg.setColor(Color.DARK_GRAY);&lt;br /&gt;
vg.fillRect((i * wd), height-y1, wd, y1);&lt;br /&gt;
}&lt;br /&gt;
g.drawImage(image, 0, 0, width, height, this);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
}]&lt;/div&gt;</summary>
		<author><name>Root</name></author>
	</entry>
</feed>