java - 使用java创建一个房子

标签 java awt

好吧,我想知道三件事,所以现在我的房子背景是白色的,我如何使它的草底部部分为蓝色和绿色。另外,我的线是向下的,我该如何向东北方向上升,以形成房子天花板的三角形?最后一件事是添加一棵树,我要制作一堆弧线来获得树的“灌木丛曲线”吗?

import java.awt.Color;
import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.Polygon;

public class House extends Canvas {
    public House() {
        setBackground(Color.WHITE);
    }

    public void paint(Graphics window) {
        window.setColor(Color.BLUE);
        window.drawRect(250, 300, 50, 125);
        window.fillRect(350, 300, 50, 135);
        window.setColor(Color.PINK);
        window.drawRect(200, 150, 350, 300);
        window.fillRect(200, 150, 350, 300);
        window.setColor(Color.GREEN);
        Polygon poly = new Polygon();
        poly.addPoint(100, 200);
        poly.addPoint(200, 400);
        poly.addPoint(300, 200);
        window.fillPolygon(poly);
    }
}

最佳答案

how do I make it part blue and green for the grass bottom part

不要使用“神奇”数字,使用绝对已知值,例如 getWidthgetHeight,例如:

window.setColor(Color.BLUE);
window.fillRect(0, 0, getWidth(), getHeight() / 2);

window.setColor(Color.GREEN);
window.fillRect(0, getHeight() / 2, getWidth(), getHeight() / 2);

Also my line is going downward how do I make go up toward northeast to make the triangle for the ceiling of the house?

它完全按照您的指示进行操作,请记住,左上角/左上角是 0x0,这意味着坐标随着向右/向下移动而增大

Polygon poly = new Polygon();
poly.addPoint(100, 200);
poly.addPoint(200, 100);
poly.addPoint(300, 200);

Last thing what about adding a tree do I make a bunch of arcs to get the "bush curviness" of the tree?

您可以使用一系列重叠的椭圆形,使用 Graphics#fillOvalGraphics#drawArc

我强烈建议您查看2D Graphics了解使用图形时的技巧和想法。

我还鼓励您查看Painting in AWT and SwingPerforming Custom Painting了解 AWT/Swing 中绘画的实际工作原理

关于java - 使用java创建一个房子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33356940/

相关文章:

java - 运行 JavaScript 方法并返回参数

java - 如何从不包含 JTextArea 的方法附加 JTextArea?

java - 在 Java(Swings) 程序运行时添加和删除 JTextField

java - 如何在Java中旋转矩形?

java - 尝试读取二进制保存的整数时 readInt() 不起作用

java - 绑定(bind)声明命名空间 "http://annox.dev.java.net"将被忽略,因为它不是由 jaxb :extensionBindingPrefixes attribute 指定的

Java/Android 倒数计时器

java - 在 JComboBox 上添加 ListSelectionListener

java - 为什么我的项目没有出现在 JFrame 中?

java - 对于 https 应用程序来说,安全标志 true 在这里有意义吗?