CS106A assignment2 --problem2 IllusoryContours

/* TODO: A program that show the illusory contour
 * does.
 */
import acm.program.*;
import acm.graphics.*;
import java.awt.*;

public class IllusoryContours extends GraphicsProgram {
    /* The default width and height of the window. These constants will tell Java to
     * create a window whose size is *approximately* given by these dimensions. You should
     * not directly use these constants in your program; instead, use getWidth() and
     * getHeight(), which return the *exact* width and height of the window.
     */
    public static final int APPLICATION_WIDTH = 300;
    public static final int APPLICATION_HEIGHT = 300;
    public static final int CIRCLE_DIAMETER = 100;
    public static double x1=0,y1=0,x2=0,y2=0,x3=0,y3=0,x4=0,y4=0;
    public void run() {
        getCenter();
        showCircle();
        showRect();
    }

    /*
     * 得到四個(gè)圓心
     * x代表圓的外切長(zhǎng)方形的左上角的x坐標(biāo),而非圓心的x坐標(biāo)
     * y代表的遠(yuǎn)的外切長(zhǎng)方形的左上角的y坐標(biāo),而非圓心的y坐標(biāo)
     */
    private void getCenter() {
        x1 = getWidth() - CIRCLE_DIAMETER;
        y1 = getHeight() - CIRCLE_DIAMETER;
        x2 = 0;
        y2 = 0;
        x3 = getWidth() - CIRCLE_DIAMETER;
        y3 = 0;
        x4 = 0;
        y4 = getHeight() - CIRCLE_DIAMETER;
        
    }
    
    private void showCircle(){
        GOval circle1 = new GOval(x1,y1,CIRCLE_DIAMETER,CIRCLE_DIAMETER);
        GOval circle2 = new GOval(x2,y2,CIRCLE_DIAMETER,CIRCLE_DIAMETER);
        GOval circle3 = new GOval(x3,y3,CIRCLE_DIAMETER,CIRCLE_DIAMETER);
        GOval circle4 = new GOval(x4,y4,CIRCLE_DIAMETER,CIRCLE_DIAMETER);
        circle1.setFilled(true);
        circle1.setFillColor(Color.black);
        add(circle1);
        circle2.setFilled(true);
        circle2.setFillColor(Color.black);
        add(circle2);
        circle3.setFilled(true);
        circle3.setFillColor(Color.black);
        add(circle3);
        circle4.setFilled(true);
        circle4.setFillColor(Color.black);      
        add(circle4);
    }

    private void showRect() {
        double x5 = CIRCLE_DIAMETER/2;
        double y5 = CIRCLE_DIAMETER/2;
        double rectWidth = getWidth() - CIRCLE_DIAMETER;
        double rectHeight = getHeight() - CIRCLE_DIAMETER;
        GRect rect = new GRect(x5,y5,rectWidth,rectHeight);
        rect.setFilled(true);
        rect.setFillColor(Color.white);
        rect.setColor(Color.white);
        add(rect);
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • | 前面命令輸出結(jié)果作為后面命令的輸入內(nèi)容 || 前面命令執(zhí)行失敗的時(shí)候才執(zhí)行后面的命令 & 前面命令執(zhí)行后接著執(zhí)...
    ucharm閱讀 1,350評(píng)論 0 0
  • 初中最后一年,成績(jī)下滑得厲害,中考失利,家里拿了擴(kuò)招費(fèi),勉強(qiáng)進(jìn)了一所普通高中。我本就容易自我否定,這自然是沉...
    魚硯之樂閱讀 435評(píng)論 1 1
  • 【意義新展示】有意粉反應(yīng)想要一條霸氣的本命年圍巾,”意義定制“當(dāng)然會(huì)滿足所有家人的心愿啦本命年本該就”霸氣“,但是...
    生活小訴閱讀 350評(píng)論 0 0

友情鏈接更多精彩內(nèi)容