posted 14 years ago
Hi,
I understood the question to be: how to decide the values of {x, y, radius} in pixels, so that Graphics2D.draw(Ellipse2D) can be used.
To translate the radius of 12m into pixel units appropriate to the floor plan picture, you need the dimensions of the floor plan or the scale factor of the picture.
As an example calculation:
Assume the floor plan is on A4 paper (8.27" x 11.69") with a scale 1 inch = 10 feet.
It's digitized at 72 dpi.
So the resulting original image will be 8.27x72=596 pixels by 11.69x72=842 pixels, and 72 pixels represents 10 ft.
Say this image is loaded into your app JPanel (assume the layout is resizable).
At current layout, the JPanel is 400 by 300 pixels.
So the image will be scaled down to fit the JPanel, with scaling factors 400/596 for x-axis, and 300/842 for y-axis.
This means, in the JPanel, 10 feet is represented by (72 x 400/596) pixels on x-axis and (72 x 300/842) pixels on y-axis.
So 12 feet will be represented by (12/10 x 72 x 400/596) pixels on x-axis and (12/10 x 72 x 300/842) pixels on y-axis.
All this is possible only if you knew the floor plan dimensions or knew 1 inch=10feet (or x metres). Without that, it's not possible to translate 12m to pixels.