2015-10-26 96 views
0

好吧我想知道三件事情,所以现在我的房子背景是白色的如何使它成为蓝色和绿色的草部分。此外,我的线路正在向下走,我要如何向东北方向走去做出房子天花板的三角形?最后一件事情是如何增加一棵树,我可以制作一堆弧线来获得树的“弯曲曲线”?使用java创建房屋

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); 
    } 
} 
+0

为什么所有的开放空间?这使得你的代码很难阅读。 –

+2

首先查看[2D图形](http://docs.oracle.com/javase/tutorial/2d/)。您可能还会发现[在AWT和Swing中绘画](http://www.oracle.com/technetwork/java/painting-140037.html)和[执行自定义绘画](http://docs.oracle.com/javase/tutorial/uiswing/painting /)有用 – MadProgrammer

+2

记住坐标系:(0,0)是左上角,随着y的增加屏幕向下。 – FredK

回答

3

我怎么做它的一部分蓝色和绿色的草地底部

不要用“神奇”的号码,使用绝对已知值一样getWidthgetHeight,例如:

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

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

而且我行会向下如何使东北上去朝马三角形的房子的天花板?

它做什么,你告诉它,记住,顶/左上角是0x0,意在尺寸坐标增加为向右移动/向下

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

最后一件事有关添加什么一棵树可以制作一串弧线来获得树的“布什曲线”吗?

你可以只使用了一系列的过度研磨椭圆形,使用Graphics#fillOvalGraphics#drawArc

我会强烈建议您在2D Graphics的技术和理念来看看使用Graphics时。

我也建议你看看Painting in AWT and SwingPerforming Custom Painting了解如何画居然在AWT/Swing的工作