如何让Java根据百分比输入绘制形状?

时间:2014-01-25 16:15:13

标签: java

我想这样做,以便用户输入50-100%之间的百分比,并根据该百分比绘制瑞士国旗​​! 我不需要确切的代码,只需要解释如何执行此操作以及应该包含/排除的内容。

我对此很新,并且不知道我应该如何实现这一目标。 到目前为止,这是我的代码。这绘制了标志,因为它应该以100%显示: (评论语言是挪威语)

    //Lager Flagget
    makeWindow("Flagg", 500, 500);
    String innStr = getText ("Størelse i prosent(50-100):");



        //Setter blå bakgrunn
        setColor(135,206,250);
        fillRectangle(0, 0, 500, 500);

        //Lager en rød bakgrunn til flagget
        setColor(255, 0, 0);
        fillRectangle(100, 100, 300, 300);

        //Lager et hvit rektangel lodrett i midten av flagget
        setColor(255, 255, 255);
        fillRectangle(225, 175, 50, 150);

        //Lager et hvit rektangel vannrett i midten flagget
        setColor(255, 255, 255);
        fillRectangle(175, 225, 150, 50);

编辑:标志将始终在窗口中间绘制!

1 个答案:

答案 0 :(得分:0)

最简单的方法来定义相对于窗口中心的工作坐标,然后在绘制前进行翻译:

//Lager Flagget
    makeWindow("Flagg", 500, 500);
    String innStr = getText ("Størelse i prosent(50-100):");

   int pct = Int.parseInt(innStr)  ;

   int cX = 250 ; // Center of the window
   int cY = 250 ; // Center of the window
   int flagHmax = 300 ;
   int crossHmax = 150 ;
   int barWmax  = 50 ;

   flagH = flagHmax * pct / 100 ; // integer math
   crossH = crossHmax * pct / 100 ;
   barW = barWmax * pct / 100 ;


    //Setter blå bakgrunn
    setColor(135,206,250);
    fillRectangle(0, 0, 500, 500);

    //Lager en rød bakgrunn til flagget
    setColor(255, 0, 0);
    fillRectangle(cX - flagH/2, cY - flagH/2, flagH, flagH);

    //Lager et hvit rektangel lodrett i midten av flagget
    setColor(255, 255, 255);
    fillRectangle(cX - barW/2, cY - crossH/2, barW, crossH);

    //Lager et hvit rektangel vannrett i midten flagget
    setColor(255, 255, 255);
    fillRectangle(cX - crossH/2, cY - barW/2, crossH, barW) ;