Skip to Main Content

New to Java

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

Drawing Circle with End-Point of Line as Centre

Zulfi KhanApr 12 2017 — edited Apr 13 2017

Hi,

I am trying to draw a circle with centre at the end point of Line but the centre is not exactly at the the end point.

import java.applet.Applet;

import java.awt.*;

import javax.swing.*;

import java.awt.image.*;

import javax.imageio.ImageIO;

public class JCircle extends Applet{

int x1=30;int ix1;

int y1=30;int iy1;

int x2=60;int ix2;

int y2=60;int iy2;

 public  void paint(Graphics g) {

          g.drawLine(x1, y1,x2, y2);

          g.drawOval( x1, y1, 10, 10);

          g.drawOval( x2, y2, 10, 10);

}

}

can some body please guide me what is the problem?

Zulfi.

circles not at end points.jpg

Comments

unknown-7404

I am trying to draw a circle with centre at the end point of Line but the centre is not exactly at the the end point.

. . .

can some body please guide me what is the problem?

The Java API for 'drawOval' will tell you the problem - have you read it?

https://docs.oracle.com/javase/7/docs/api/java/awt/Graphics.html#drawOval(int,%20int,%20int,%20int)

Draws the outline of an oval. The result is a circle or ellipse that fits within the rectangle specified by the x, y, width, and height arguments.

The oval covers an area that is width + 1 pixels wide and height + 1 pixels tall.

You need to specify the coordinates of the 'bounding rectangle' and the circle will be drawn INSIDE it.

int x1=30;int ix1;

int y1=30;int iy1;

int x2=60;int ix2;

int y2=60;int iy2;

public void paint(Graphics g) {

g.drawLine(x1, y1,x2, y2);

g.drawOval( x1, y1, 10, 10);

g.drawOval( x2, y2, 10, 10);

So the TOP LEFT CORNER of your first 'bounding rectangle' is at x1, y1 and the height and width are 10.

You need to use x1 - 5 and y1 - 5.

Zulfi Khan

Thanks. This problem is solved now.

God bless you.

Zulfi.

unknown-7404

Then please mark the thread ANSWERED.

1 - 3
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on May 11 2017
Added on Apr 12 2017
3 comments
810 views