`
wuzijingaip
  • 浏览: 329949 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java 模拟水波

阅读更多
import java.awt.*;
import java.applet.Applet;

public class Splash extends Applet implements Runnable {

	int XMAX = 112;

	float[] m_Height = new float[XMAX];

	float[] m_G = new float[XMAX];

	float b = 1.01f;

	float fWeight = 3;

	private Thread m_NAMI2D = null;

	public boolean mouseDown(Event event, int i, int j) {
		m_Height[i / 4 - 1] += j / 2;
		m_Height[i / 4] += j;
		m_Height[i / 4 + 1] += j / 2;
		return false;
	}

	public void paint(Graphics g) {
		g.setColor(Color.blue);
		float f1 = 3F * fWeight;
		float f2 = f1 - 2.0F;
		m_Height[0] = m_Height[1];
		m_Height[XMAX - 1] = m_Height[XMAX - 2];
		float f = m_Height[0];
		for (int i = 1; i < XMAX - 1; i++) {
			float f3 = ((f + f2 * m_Height[i] + m_Height[i + 1]) / f1 + m_G[i])
					/ b;
			f = m_Height[i];
			m_G[i] = f3 - f;
			m_Height[i] = f3;
			g.clearRect((i - 1) * 4, (int) f3 - 30, 4, 60);
			g.fillRect((i - 1) * 4, (int) f3 + 30, 4, 60);
		}
	}

	public void run() {
		do
			try {
				repaint();
				Thread.sleep(50L);
			} catch (InterruptedException _ex) {
				stop();
			}
		while (true);
	}

	public void start() {
		if (m_NAMI2D == null) {
			m_NAMI2D = new Thread(this);
			m_NAMI2D.start();
		}
	}

	public void stop() {
		if (m_NAMI2D != null) {
			m_NAMI2D.stop();
			m_NAMI2D = null;
		}
	}

	public void update(Graphics g) {
		paint(g);
	}
}
分享到:
评论

相关推荐

    java 水波荡漾的效果

    在Java编程语言中,实现水波荡漾效果通常涉及到图形渲染和动画技术。这个效果可以应用于游戏开发、桌面应用或者网页交互元素,增加视觉吸引力。本文将深入探讨如何使用Java来创建这种动态的水波荡漾效果。 首先,...

    java写的水波特效

    Java编程语言以其强大的功能和广泛的应用领域,常常被用来创建各种各样的视觉特效,其中之一就是“水波特效”。水波特效通常用于游戏开发、动画制作或者用户界面设计中,为用户提供更加生动逼真的交互体验。在Java中...

    java实现水波纹扩散效果

    Java 实现水波纹扩散效果是 Java 编程语言中的一种常见效果,它可以模拟水波纹的扩散过程。下面是关于 Java 实现水波纹扩散效果的详细知识点: 一、原理 水波纹扩散效果的原理是利用数学函数来模拟水波纹的扩散...

    java 水波效果源码

    我们可以利用`Graphics2D`的`draw()`方法绘制各种形状,如椭圆、线段等,模拟水波的起伏。 三、动画原理 水波效果的动态感来源于动画的实现。Java中可以使用`javax.swing.Timer`或`java.awt.event.ActionEvent`来...

    很好用的水波动画 java

    目的是展示如何在 Java 中实现一个动态的水波动画效果,通过模拟石子投入水中产生的波纹来增强视觉体验。 #### 1.3 项目特点 - **高效性**:程序设计时考虑了 CPU 占用率问题,确保动画流畅的同时尽量减少资源消耗...

    水波纹(Android项目)

    在绘制水波纹时,可能会用到不同的Paint设置,比如透明度变化来模拟水波的扩散效果。 4. **动画框架**: Android提供了多种动画库,如Property Animation和Transition API,可用于创建平滑的动效。在水波纹项目中,...

    一种基于Java的网络拓扑水波动画显示方法设计及实现.pdf

    该技术使用数学公式来模拟水波的运动,能够将网络拓扑图形显示为动态的水波效果。该技术的优点是能够提供实时的图形显示,且能够适应不同类型的网络拓扑图形。 4. Java技术 Java是一种常用的编程语言,能够用于...

    water_javagif水纹仿真_java水纹_

    在IT行业中,Java是一种广泛应用的编程语言,尤其在桌面应用、服务器端开发和移动应用等领域。本项目聚焦于一个特定的领域:Java图形处理和动画制作,具体是创建一个水纹仿真的程序,并能生成GIF动画。让我们深入...

    windows 鼠标点击 水波纹 效果

    当鼠标点击发生时,程序会在点击位置生成一个中心点,然后以该点为中心向外扩散,模拟水波的传播。这种效果可以通过二维坐标系统和数学公式(如高斯函数或Bézier曲线)来计算每个像素的透明度和颜色变化,从而形成...

    WaterWaveView:模拟水波的自定义视图

    本文将深入探讨“WaterWaveView”这个项目,它是一个用于模拟水波效果的自定义视图。我们将从Java编程语言的角度出发,详细分析其设计原理、实现方法以及可能的应用场景。 首先,`WaterWaveView`是一个基于Java编写...

    水波纹效果Shader

    - **扰动(Distortion)**:通过扰动像素的位置或颜色来模拟水波效果。 - **衰减(Decay)**:波动会随着时间逐渐减弱,需要模拟这种衰减过程。 3. **点击事件处理** - **点击位置映射**:将用户的点击位置转换...

    水波纹效果.rar

    6. **编程语言与库**:实现水波纹效果可以使用各种编程语言,如C++、Java、Python等,配合图形库如OpenGL、DirectX或Unity等。例如,OpenGL提供了强大的图形渲染能力,可以方便地处理像素级别的操作。 7. **实时...

    多点点击水波.zip

    在这里,开发者可能设计了图形元素,如水波纹理,并设置了动画帧以模拟水波的扩散和消退。 `Main.swf`是编译后的Flash应用程序,可以直接在Web浏览器中运行。用户可以通过这个文件看到和体验到最终的水波效果。 `...

    自定义视图实现水波从中心扩散效果

    我们需要计算每次绘制时圆的半径和透明度,模拟水波由中心向外扩散的过程。 5. **颜色过渡**:为了实现水波的视觉效果,通常需要从中心点开始,向外逐渐改变颜色的透明度,这需要用到颜色的阿尔法通道(Alpha)控制...

    android 自定义按钮实现水波纹效果

    在绘制水波纹时,可以使用`Paint`的`setShader()`方法,设置一个`RadialGradient`渐变器,模拟水波纹由中心向外扩散的效果。同时,通过调整`canvas.translate()`和`canvas.scale()`来实现波纹的动画效果,使得它看...

    android 水波纹效果

    4. **编程实现**:除了XML和库方法,也可以通过Java代码动态设置水波纹效果。例如,可以创建一个`rippleView`,然后在`OnClickListener`中启动涟漪动画。 ```java button.setOnClickListener(new View....

    水波纹效果

    在IT行业中,特别是游戏开发和图形用户界面设计领域,水波纹效果是一种常见的视觉特效,用于模拟水面波动的动态景象。这种效果可以增加应用程序或游戏的沉浸感,提高用户体验。在Java J2ME(Java 2 Micro Edition)...

    三星水波纹解锁

    这种设计通常会通过触摸屏幕时产生的涟漪动画,模拟水面上被物体触碰后泛起的波纹,让用户在解锁手机的同时享受一种独特的感官体验。在三星设备上,这种解锁方式可能与系统深度融合,不仅提供基本的安全功能,还强化...

    图像处理 image proccess 水波倒影效果

    这可以通过使用某种算法(如傅立叶变换或基于像素的位移方法)来模拟水面的波动。在J2ME中,由于资源限制,可能需要选择计算量较小的方法,例如简单地随机改变像素位置或使用扰动函数。 4. **混合与透明度处理**:...

Global site tag (gtag.js) - Google Analytics