动态生成图像:
根据用户不同的半径边长 输出不同大小的图像。
代码语言:javascript复制/**
* @deprecated 动态生成图像
*/
//创建aa类
class AA {
// 成员变量初始化
private int hw = 0;
//空构造器 用于实例化对象
public void AA() {
}
//有参构造器
public void setHw(int hw) {
this.hw = hw;
}
//成员方法
public void getCharGUI() {
// 行
for (int i = 0; i < hw; i ) {
// 控制上下边界
if (i == 0 || i == hw - 1) {
// 行输出个数控制
for (int j = 0; j < hw; j ) {
System.out.print("哈 ");
}
} else {
// 列 输出个数控制
for (int j = 0; j < hw; j ) {
// 控制左右边界
if (j == 0 || j == hw - 1) {
System.out.print("哈 ");
} else {
System.out.print(" ");
}
}
}
System.out.println();
}
System.out.println();
}
}
//子类B集成父类A
class BB extends AA {
// 成员变量
private int r = 0;
// 空构造器 不写 系统自带。 用于实例化对象
public void BB() {
}
// 带参构造方法
public void setr(int r) {
this.r = r;
super.setHw(r); // 访问父级成员方法
}
// 成员方法
public void getLoveGUI() {
super.getCharGUI();
double rIn = this.r - 0.4; // 内圆半径
double rOut = this.r 0.4; // 外圆半径
for (double y = this.r; y >= -this.r; --y) { // 外部循环控制y坐标,从上边界到下边界
for (double x = -this.r; x < rOut; x = 0.5) { // 内部循环控制x坐标,从左边界到右边界,步长为0.5
double value = x * x y * y; // 当前位置的x和y坐标的平方和
if (value >= rIn * rIn && value <= rOut * rOut) { // 如果当前位置在空心圆形范围内,则输出星号*
System.out.print("哈 ");
} else { // 否则输出空格
System.out.print(" ");
}
}
System.out.println(); // 每一行结束后换行
}
}
}
实例化:
代码语言:javascript复制int i = 0;
System.out.println("[*]请输入图像像素大小,输入0退出程序t");
while (true) {
System.out.print("[*]等待输入>t");
Scanner scanners = new Scanner(System.in);
int r = scanners.nextInt();
if (r == 0) {
break;
}
System.out.println();
System.out.print("图像生成进度t:");
for (i = 0; i <= 100; i ) {
Thread.sleep(10);
System.out.print("■");
if (i == 100) {
System.out.println("t" i "%");
System.out.println();
BB bb = new BB();
bb.setr(r);
bb.getLoveGUI();
System.out.println();
}
}
}