How to draw heart using java awt libaray?

你离开我真会死。 提交于 2019-11-29 18:02:50

Had to write this code for something I'm doing and it works well enough. Draws a triangle at x and y with the specified width and height using graphics g.

// 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);
}

//You don't really need AWT in Heart drawing here ://

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();
 }
}

}

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!