Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Circle and Ellipse

Posted on 2010-11-18
9
Medium Priority
?
402 Views
Last Modified: 2012-05-10
How do I make an ellipse??? I have mange to do the circle code.
Anyone could show me?

Ellips
Area = p * a * b
import java.awt.geom.*;

/**
 * A circle that can be manipulated and that draws itself on a canvas.
 * 
 *
 */

public class Circle extends Shape
{
    private int diameter;
    
    /**
     * Create a new circle at default position with default color.
     */
    public Circle()
    {
        super(20, 60, "blue", false);
        diameter = 30;
    }
    

    /**
     * Change the size to the new size (in pixels). Size must be >= 0.
     */
    public void changeSize(int newDiameter)
    {
        erase();
        diameter = newDiameter;
        draw();
    }

    /**
     * Draw the circle with current specifications on screen.
     */
    protected void draw()
    {
        if(isVisible) {
            Canvas canvas = Canvas.getCanvas();
            canvas.draw(this, color, new Ellipse2D.Double(xPosition, yPosition, 
                                                          diameter, diameter));
            canvas.wait(10);
        }
    }

     /**
     * Get the area value of the circle.
     */
    public double getArea()
    {
        return Math.PI * diameter * diameter;
    }
        
}

Open in new window

0
Comment
Question by:Mickeys
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 4
9 Comments
 
LVL 33

Expert Comment

by:jppinto
ID: 34162708

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.Arc2D;
import java.awt.geom.Ellipse2D;
import java.awt.geom.GeneralPath;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import java.awt.geom.RoundRectangle2D;

import javax.swing.JApplet;
import javax.swing.JFrame;

public class EllipseDemo2D extends JApplet {
  final static BasicStroke stroke = new BasicStroke(2.0f);  
  public void init() {
    setBackground(Color.white);
    setForeground(Color.white);
  }


  public void paint(Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
        RenderingHints.VALUE_ANTIALIAS_ON);

    g2.setPaint(Color.gray);
    int x = 5;
    int y = 7;

    g2.setStroke(stroke);
    g2.draw(new Ellipse2D.Double(x, y, 200, 200));
    g2.drawString("Ellipse2D", x, 250);

  }

  public static void main(String s[]) {
    JFrame f = new JFrame("");
    f.addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0);
      }
    });
    JApplet applet = new EllipseDemo2D();
    f.getContentPane().add("Center", applet);
    applet.init();
    f.pack();
    f.setSize(new Dimension(300, 300));
    f.show();
  }
}

Open in new window

0
 

Author Comment

by:Mickeys
ID: 34162728
Ehhh??? I need to use it from my code. I could have found copy paste on internet myself.
0
 
LVL 16

Expert Comment

by:Valeri
ID: 34162841
in this line
canvas.draw(this, color, new Ellipse2D.Double(xPosition, yPosition,
                                                          diameter, diameter));

change to
canvas.draw(this, color, new Ellipse2D.Double(xPosition, yPosition,
                                                          diameter, diameter + 70));
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 16

Expert Comment

by:Valeri
ID: 34162854
If your parameters 3 and 4 are equal, it's a circle, otherwise if they are different it's a ellipse...
0
 

Author Comment

by:Mickeys
ID: 34162857
so I should like extend from circle or someting?
0
 
LVL 16

Expert Comment

by:Valeri
ID: 34162891
Actually circle is ellipse, a particular kind of ellipse, so you have to have 2 parameters :
diameterX and diameter Y
A proportion between them determine how will your ellipse will look like. If they are equal it's a circle.
so change the line to :
canvas.draw(this, color, new Ellipse2D.Double(xPosition, yPosition,
                                                          diameterX , diameterY));
0
 

Author Comment

by:Mickeys
ID: 34163282
so what you are saying. Use that line and exchange diameter to x and y.

So a copy of the circle?????? with the above included.
0
 
LVL 16

Accepted Solution

by:
Valeri earned 2000 total points
ID: 34163370
no, just create another class, for Ellipse, it similar to Circle, but it's good to have different classes for Circle and Ellipse. Here it is :

import java.awt.geom.*;

public class Ellipse extends Shape {
    private int diameterX, diameterY;
   
    /**
     * Create a new circle at default position with default color.
     */
    public Ellipse()
    {
        super(20, 60, "blue", false);
        diameterX = 30; diameterY = 30;
    }
   

    /**
     * Change the size to the new size (in pixels). Size must be >= 0.
     */
    public void changeSize(int diameterX, int diameterY)
    {
        erase();
        this.diameterX = diameterX; this.diameterY = diameterY;
        draw();
    }

    /**
     * Draw the circle with current specifications on screen.
     */
    protected void draw()
    {
        if(isVisible) {
            Canvas canvas = Canvas.getCanvas();
            canvas.draw(this, color, new Ellipse2D.Double(xPosition, yPosition, diameterX, diameterY));
            canvas.wait(10);
        }
    }

     /**
     * Get the area value of the circle.
     */
    public double getArea()
    {
        return Math.PI * diameterX * diameterY;
    }
       
}
0
 

Author Closing Comment

by:Mickeys
ID: 34163462
Ok. I just thought it should inheritate like Ellipse extend Circle but i guess I was wrong. :-)
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Java contains several comparison operators (e.g., <, <=, >, >=, ==, !=) that allow you to compare primitive values. However, these operators cannot be used to compare the contents of objects. Interface Comparable is used to allow objects of a cl…
Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
Viewers learn how to read error messages and identify possible mistakes that could cause hours of frustration. Coding is as much about debugging your code as it is about writing it. Define Error Message: Line Numbers: Type of Error: Break Down…
Viewers will learn about arithmetic and Boolean expressions in Java and the logical operators used to create Boolean expressions. We will cover the symbols used for arithmetic expressions and define each logical operator and how to use them in Boole…
Suggested Courses

618 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question