📄 virtualsphere.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 + -