Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / January 2006

Tip: Looking for answers? Try searching our database.

Getting new coordinates

Thread view: 
Chantal - 24 Jan 2006 12:59 GMT
Hello,

I'm translating and rotating a polygon with graphics2D (g2) and
everything works fine :

g2.translate(x, y);
g2.rotate(r);
g2.drawPolygon(pol);
//reinit
g2.translate(-x, -y);
g2.rotate(-r);

But I would like to know if it's possible to get the new coordinates of
the polygon, I mean after the rotation and translation are done.

To be complete, I'm doing a translation and a rotation on a image too.
So i draw first my image and after I draw my polygon.
So my image and polygon perfectly match but I need to get the new
coordinates of my polygon.

I tried to rotate and translate my polygon with maths without using
dedicated graphics2D functions (the image is still translated and
rotated with graphics2D) but the figures don't match anymore (several
pixels of difference).

So, if there was a possibility to get the new coordinates of my polygon
with the first solution (everything done with graphics2D), it would be
great !!

Thanks in advance,  :o)

Chantal
Thomas Weidenfeller - 24 Jan 2006 14:34 GMT
> I'm translating and rotating a polygon with graphics2D (g2) and
> everything works fine :
[quoted text clipped - 3 lines]
> g2.drawPolygon(pol);
> //reinit

It is better to keep a copy of the original, instead of trying to
reverse your operations, ...

> g2.translate(-x, -y);
> g2.rotate(-r);

... because this adds rounding errors.

[...]
> So, if there was a possibility to get the new coordinates of my polygon
> with the first solution (everything done with graphics2D),

There are no new polygon user space coordinates, since you have in no
way translated the polygon. You have changed the origin and rotation of
the device space coordinate system in which the polygon is drawn. Within
that coordinate system the polygon user space coordinates are absolutely
the same as before.

So what is it what you really want?

/Thomas
Signature

The comp.lang.java.gui FAQ:
ftp://ftp.cs.uu.nl/pub/NEWS.ANSWERS/computer-lang/java/gui/faq
http://www.uni-giessen.de/faq/archiv/computer-lang.java.gui.faq/

Chantal - 24 Jan 2006 14:52 GMT
Hello Thomas,

Thanks you for your answer.

How to get original values ?

What I wanted was to try to get the coordonnates of the rotated polygon
but if it's only the device space system coordinates which is changed,
I don't have certainly the possibility to get it. I'll try another way.

Thanks again Thomas, :o)

Chantal
Chantal - 24 Jan 2006 14:57 GMT
Re,

I get it I think : g2.getTransform().getTranslateX();

etc...

Thanks again
Roedy Green - 24 Jan 2006 19:01 GMT
>But I would like to know if it's possible to get the new coordinates of
>the polygon, I mean after the rotation and translation are done.

See http://mindprod.com/jgloss/affinetransform.html#MANUAL
It shows you how to transform an individual point.

Unfortunately that method requires you do the matrix multiply twice,
once for the polygon for drawing and once for discovering where the
transform put the points.
Signature

Canadian Mind Products, Roedy Green.
http://mindprod.com Java custom programming, consulting and coaching.



Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.