簡體   English   中英

如何使用java awt libaray畫心?

[英]How to draw heart using java awt libaray?

如何使用java awt libaray畫心? 我正在使用Java AWT Libaray,我需要為自己的游戲畫上一顆心。 如何使用AWT執行此操作?

這是我在想的:可能使用g.fillArc()嗎? 但是如果我在頂部制作兩條曲線,而不是在按鈕上制作三角形? 那是g.fillPolygon()嗎?

g.fillArc(x, y, 20,20, 60, 60); //so this will be left curve

g.fillArc(x+20, y, 20,20, 60, 60); //so right curve?

//button triangle?

我想知道是否有人在awt方面有經驗,可以告訴我該怎么做?

不得不為我正在做的事情編寫此代碼,並且效果很好。 使用圖形g在x和y處以指定的寬度和高度繪制一個三角形。

// Draw a heart.
public void drawHeart(Graphics g, int x, int y, int width, int height) {
    int[] triangleX = {
            x - 2*width/18,
            x + width + 2*width/18,
            (x - 2*width/18 + x + width + 2*width/18)/2};
    int[] triangleY = { 
            y + height - 2*height/3, 
            y + height - 2*height/3, 
            y + height };
    g.fillOval(
            x - width/12,
            y, 
            width/2 + width/6, 
            height/2); 
    g.fillOval(
            x + width/2 - width/12,
            y,
            width/2 + width/6,
            height/2);
    g.fillPolygon(triangleX, triangleY, triangleX.length);
}

//在這里,您真的不需要在心臟繪圖中使用AWT://

public static void main(String[] args) {
       int H=7,W=7;
       for(int i=2;i<=(H+1)/2;i++){

      for(int j=0;j<W/2-i;j++){
        System.out.print(" ");
       }
    for(int k=1;k<(i+1)*2+1;k++){
    System.out.print("*");
    }

    if(i==2){
    System.out.print(" ");
    }

    for(int j=0;j<W/2-i+1;j++){
    System.out.print(" ");
    }

    for(int k=1;k<(i+1)*2+1;k++){
    if(i==(H+1)/2&&k>i+3)
    System.out.print("");
    else
    System.out.print("*");
    }
    System.out.println();

    }
    int HH=17,WW=17;
    for(int i=1;i<=HH/2;i++){

    for(int j=1;j<=i;j++){
    System.out.print(" ");
    }
    int z=WW-2*i;
    for(int k=1;k<=z;k++){
    System.out.print("*");
    }
    System.out.println();
 }
}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM