Java: smiley

Smiley face

I want to know what I should use to draw the mouth and eyes of the above smiley. so far I have managed to draw something behind my eyes and mouth (look at the result so far). I tried using Arc2D.double, as you can see in the code down, marked as a comment.

Here is what I have done so far:

import java.awt.geom.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class draw2 extends JPanel { public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; this.setBackground(new Color( 255,255,255)); g.setColor(Color.yellow); g.fillOval(100,100,300,300); g.setColor(Color.white); g.fillArc(110,120,250,250,90,180); g.setColor(new Color (218,165,32)); g.drawArc(130,110,250,280,90,-180); g.setColor(Color.yellow); g.fillOval(125,105,250,290); // draw Arc2D.Double //g2.setColor(Color.black); //g2.fill(new Arc2D.Double(130, 200, 200,150,170, 200, Arc2D.OPEN)); } public static void main (String[] args) { JFrame f = new JFrame("Task 2"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); draw2 d = new draw2(); f.add(d); f.setSize(600,600); f.setVisible(true); } } 

RESULT SAVE:

enter image description here

+5
source share
1 answer

The starting point for the left and right offset lines can be the following fragment.

 BasicStroke stroke = new BasicStroke( 12, BasicStroke.CAP_BUTT, 0, BasicStroke.JOIN_BEVEL ); g2.setStroke(stroke); GeneralPath leftLaughLine = new GeneralPath(); int x = 150; int y = 230; leftLaughLine.moveTo(x, y); leftLaughLine.curveTo(x - 20, y + 5, x - 25, y + 25, x - 25, y + 25); g2.draw(leftLaughLine); GeneralPath rigthLaughLine = new GeneralPath(); x = 350; y = 230; rigthLaughLine.moveTo(x, y); rigthLaughLine.curveTo(x + 20, y + 5, x + 25, y + 25, x + 25, y + 25); g2.draw(rigthLaughLine); 

enter image description here

+1
source

Source: https://habr.com/ru/post/1233843/


All Articles