斯坦福作业2:简单Java程序 图形作业合集

 

1、写一个GraphicsProgram类的子类,绘制如下图所示的金字塔,该金字塔由砖块逐

行堆砌而成,随着塔高递增,砖块的数量逐层递减1

这个金字塔应该放置于窗口底部,居中对齐,并设置以下常量:

BRICK_WIDTH 砖块宽度(30 像素)

BRICK_HEIGHT 砖块高度(12 像素)

BRICKS_IN_BASE 底层砖块数量(14)

括号里的数量对应上图的数值,在程序设计过程中,这个值应当是可以修改的。

 

code:

import acm.graphics.*; import acm.program.*; import java.awt.*; public class Pyramid extends GraphicsProgram { /** Width of each brick in pixels */ private static final int BRICK_WIDTH = 30; /** Width of each brick in pixels */ private static final int BRICK_HEIGHT = 12; /** Number of bricks in the base of the pyramid */ private static final int BRICKS_IN_BASE = 14; public void run() { //获取窗口大小 int W = getWidth(); int H = getHeight(); //获取窗口中点X坐标 int Mx = W/2; //从上至下逐行画 for(int i = 1;i <= BRICKS_IN_BASE;i++){ int Yb = H - (BRICKS_IN_BASE - i + 1)*BRICK_HEIGHT; for(int j = 1;j <= i;j++){ int firstBrick = Mx - i * (BRICK_WIDTH/2); int Xb = firstBrick + (i-j)*BRICK_WIDTH; GRect b = new GRect(Xb, Yb, BRICK_WIDTH, BRICK_HEIGHT); add(b); } } } }  

 

 

2、假设你受雇编写程序,内容是画一个箭靶的图像——当然如果你更希望它具有实际的商

业用途,你也可以将它看作一家全国性百货公司的LOGO——如下图所示

这个图像只是对GOval类的三次简单运用(GOval类用于在图形窗口中显示椭圆),即按

正确的次序画出两红一白三个圆。最外侧的圆半径应为1 英寸(72 像素),白圆半径应为0.65

英寸,最里侧的红圆半径应为0.3 英寸。请将图像在图形程序窗口中居中显示。

 

code:

import acm.graphics.*; import acm.program.*; import java.awt.*; public class Target extends GraphicsProgram { public static final int R = 72; public void run() { //获取窗口中点坐标 int x = getWidth() / 2; int y = getHeight() / 2; //由外至内逐一画圆(并上色) GOval o1 = new GOval(x-R/2,y-R/2,R,R); o1.setFilled(true); o1.setColor(Color.RED); add(o1); GOval o2 = new GOval(x-R*0.65/2,y-R*0.65/2,R*0.65,R*0.65); o2.setFilled(true); o2.setColor(Color.white); add(o2); GOval o3 = new GOval(x-R*0.3/2,y-R*0.3/2,R*0.3,R*0.3); o3.setFilled(true); o3.setColor(Color.RED); add(o3); } }  

 

 

第三个有点莫名其妙,到时候再说 = =

发这个的时候发现电脑中毒了,鸡动。。

 

 

你可能感兴趣的:(Java)