📄 spacefield.java
字号:
package inline.ui.ce;
import inline.ui.*;
import java.util.*;
import javax.microedition.lcdui.*;
public class SpaceField extends CanvasElement
{
private static final int MAX_LINES = 23;
public SpaceField(HostCanvas prnt, int x, int y, int w, int h)
{
super(prnt, x,y,w,h);
}
public SpaceField(HostCanvas prnt)
{
this(prnt, 0,0,0,0);
}
public void paintElement(Graphics g)
{
synchronized (g)
{
paintDeeply(g);
}
}
private void paintDeeply(Graphics g)
{
Random rnd = new Random();
int pax = -100 + (rnd.nextInt()%42);
int pay = 40 + (rnd.nextInt()%40);
int pbx = getWidth() + 100 + (rnd.nextInt()%42);
int pby = 50 + (rnd.nextInt()%40);
int pwx = pbx;
int pwy = (getHeight()-pay)*(pbx-pax)/-pax + pay;
int pqx = pax;
int pqy = (getHeight()-pby)*(pbx-pax)/(pbx-getWidth()) + pby;
for(int i=0;i<MAX_LINES;i++)
{
// coef = 100...0
// based on 1/x
int coef = 101-(20000/(100*i/MAX_LINES+100)-100);
// linear
//coef = 100*(MAX_LINES-i)/MAX_LINES;
g.setColor(getRampColor(coef));
int pwly = i*(pwy-pby)/(MAX_LINES-i+1)/MAX_LINES;
g.drawLine(pax,pay, pbx,pby+pwly);
int pqly = i*(pqy-pay)/(MAX_LINES-i+1)/MAX_LINES;
g.drawLine(pbx,pby, pax,pay+pqly);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -