📄 line_house_canvas.java
字号:
package ch05;
import java.io.*;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
public class Line_House_Canvas
extends GameCanvas {
/*
3.构造器
*/
public Line_House_Canvas() throws IOException {
super(true);
setTitle("绘制直线实例");
render(getGraphics());
//输出缓存中的图像
flushGraphics();
}
/*
4.绘制方法
*/
private void render(Graphics g) {
//变量w和h为模拟器的当前屏幕宽度和高度
//JBX模拟器的屏幕宽度为180和高度为177
int w = getWidth();
int h = getHeight();
//绘制篱笆
//设置篱笆颜色为蓝色
g.setColor(0x0000ff);
//绘制篱笆的横桩
//变量i控制篱笆横桩的条数
for (int i = 0, j = 0; j < 3; i = i + 10, j = j + 1) {
g.drawLine(0, h - i, w, h - i);
g.drawLine(0, h - i - 1, w, h - i - 1);
}
//绘制篱笆的竖桩
//变量i控制篱笆之间的间隔距离
for (int i = 0; i < w; i = i + 5) {
g.drawLine(i, h - 25, i, h);
}
//绘制房子
//设置房子的颜色为红色
g.setColor(0xff0000);
//绘制房顶
//房顶为一个三角形,因此构成的三条线段彼此首尾相连
g.drawLine(w / 4, h / 3, w / 4 - w / 5, h / 3 + h / 6);
g.drawLine(w / 4 - w / 5, h / 3 + h / 6, w / 4 + w / 5, h / 3 + h / 6);
g.drawLine(w / 4 + w / 5, h / 3 + h / 6, w / 4, h / 3);
//绘制房屋主体
//房屋主体为一个矩形,只需画出三边即可,第四条边和房顶共享
g.drawLine(w / 4 - w / 5 + w / 22, h / 3 + h / 6, w / 4 - w / 5 + w / 22,
h / 3 + h / 6 + h / 5);
g.drawLine(w / 4 - w / 5 + w / 22, h / 3 + h / 6 + h / 5,
w / 4 + w / 5 - w / 22,
h / 3 + h / 6 + h / 5);
g.drawLine(w / 4 + w / 5 - w / 22, h / 3 + h / 6 + h / 5,
w / 4 + w / 5 - w / 22,
h / 3 + h / 6);
//绘制门
//门在房屋主体中为一个矩形
g.drawLine(w / 4, h / 3 + h / 6 + h / 5, w / 4, h / 3 + h / 6 + h / 12);
g.drawLine(w / 4, h / 3 + h / 6 + h / 12, w / 4 + w / 5 - h / 12,
h / 3 + h / 6 + h / 12);
g.drawLine(w / 4 + w / 5 - h / 12, h / 3 + h / 6 + h / 12,
w / 4 + w / 5 - h / 12, h / 3 + h / 6 + h / 5);
//绘制树
//设置树的颜色为绿色
g.setColor(0x00ff00);
//绘制树的主干
//树的主干为一个矩形
g.drawLine(w - w / 4 - w / 45, h / 3, w - w / 4 - w / 45,
h / 3 + h / 6 + h / 5);
g.drawLine(w - w / 4 + w / 45, h / 3 + h / 6 + h / 5, w - w / 4 - w / 45,
h / 3 + h / 6 + h / 5);
g.drawLine(w - w / 4 + w / 45, h / 3 + h / 6 + h / 5, w - w / 4 + w / 45,
h / 3);
//绘制树顶
//树顶为两个三角形
g.drawLine(w - w / 4, h / 3 - h / 7, w - w / 4 - h / 5, h / 3);
g.drawLine(w - w / 4 - h / 5, h / 3, w - w / 4 + h / 5, h / 3);
g.drawLine(w - w / 4 + h / 5, h / 3, w - w / 4, h / 3 - h / 7);
g.drawLine(w - w / 4, h / 3 - h / 4, w - w / 4 - h / 6, h / 3 - h / 7);
g.drawLine(w - w / 4 - h / 6, h / 3 - h / 7, w - w / 4 + h / 6,
h / 3 - h / 7);
g.drawLine(w - w / 4 + h / 6, h / 3 - h / 7, w - w / 4, h / 3 - h / 4);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -