⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 virtualsphere.java

📁 java编的模拟一个小球的非弹性碰撞
💻 JAVA
字号:
import java.awt.*;

public class VirtualSphere
{
	Color color=new Color(255,255,255);
	int x,y,radius;
	int nDiffuse=8;
	int nSpecular=4;
	
	public VirtualSphere(int x,int y,int radius)
	{
		this.x=x;
		this.y=y;
		this.radius=radius;
	}
	
	public void setColor(Color color)
	{
		this.color=color;
	}
	
	public void setPrecision(int nDiffuse,int nSpecular)
	{
		this.nDiffuse=nDiffuse;
		this.nSpecular=nSpecular;
	}
	
	public void draw(Graphics g)
	{
		int red=color.getRed();
		int green=color.getGreen();
		int blue=color.getBlue();
		int i;
		
		for(i=0;i<nDiffuse;i++)
		{
			double index=i;
			int rNow=(i*red*4)/(7*nDiffuse)+(3*red)/7;
			int gNow=(i*green*4)/(7*nDiffuse)+(3*green)/7;
			int bNow=(i*blue*4)/(7*nDiffuse)+(3*blue)/7;
			Color linearColor=new Color(rNow,gNow,bNow);
			g.setColor(linearColor);
			g.fillOval(x+(int)(1.25*(index*0.8)),y+(int)(0.4*index),
					   radius-(int)(1.25*index)+1,radius-(int)(1.25*index)+1);
		}
		for(i=0;i<nSpecular;i++)
		{
			double index =(double)(nDiffuse+i);
			int rNow=red+((255-red)*i)/(int)(2.0*(double)nSpecular);
			int gNow=green+((255-green)*i)/(int)(2.0*(double)nSpecular);
			int bNow=blue+((255-blue)*i)/(int)(2.0*(double)nSpecular);
			Color linearColor=new Color(rNow,gNow,bNow);
			g.setColor(linearColor);
			g.fillOval(x+(int)(1.25*(index*0.8)),y+(int)(0.4*index),
			           radius-(int)(1.25*index)+1,radius-(int)(1.25*index)+1);
		}
	}
}

















⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -