Note that "Area" is specifically targeted to processing areas, not
outlines. While it does express its answer in the form of an outline,
on the other hand the information it is processing, operating on, and
representing internally is areas, not outlines. It's output is intended
only for filling, not for stroking. You can stroke its output because
the graphics system allows you to stroke any path, but the Area class
wasn't concerned at all about stroking issues (such as path direction)
during its internal operations.
If you are simply trying to simplify the polygon to throw out
unnecessary segments to simplify rendering then the Area class is not
designed or optimized to address your needs. Additionally, it is doing
way more work than your application needs and writing your own
implementation may perform better.
Also, Area will perform optimizations that you don't want such as
removing an interior segment that does not contribute to the boundary
between interior and exterior. Such segments are superfluous for
filling, but might be visible when stroking. The Area class won't care
and will just delete them all the same because it only cares about areas
internally.
Another issue to consider is that if you have arrows or other periodic
decorations then removing segments will mean that those decorations will
shift their locations. The length of the omitted path must be
considered while computing where the decorations are placed, but if you
pre-edit the path to remove them then those lengths cannot be computed.
Out of curiosity, are you trying to clip these paths to avoid having to
process decorations on parts of the path that are far outside of the
clip? We've recently discussed that performance issue internally in the
Graphics-Rasterizer project and noted that it is an opportunity for
future performance work...
...jim
On 10/7/15 12:37 AM, Hruda, Steve wrote:
Hi Jim,
we are using the Area to clip/intersect geometries like a polygon. Such a
polygon has a digitizing direction and this direction has an effect on the
point order.
If we visualize a clipped polygon in our map, than we have the problem that
complex line styles like a placed graphic along a line e.g. an arrow, shows in
the wrong direction.
Thanks for the explanation Jim, I will consider the point-order manipulation in
our application.
Regards,
Steve
Diese E-Mail wurde versandt im Auftrag des Unternehmens Intergraph Ges.m.b.H.
Vertretungsberechtigte Geschäftsführer: Maximilian Weber
Sitz der Gesellschaft: Margaretenstraße 70/I/1, 1050 Wien, Österreich, Tel. +43
(1) 9610567-0
Eingetragen beim Handelsgericht Wien, Firmenbuch-Nr.: FN 116859 b
Umsatzsteuer-Identifikationsnummer / VAT-ID: ATU15138401, Steuer-Nummer:
264/4807
This E-Mail has been sent on behalf of the company Intergraph Ges.m.b.H.
Authorised Managing Directors: Maximilian Weber
Registered office and Austrian headquarters: Margaretenstr. 70/I/1, 1050 Wien,
Austria, Tel. +43 (1) 9610567-0
The company is recorded at the commercial court of Vienna under the company
register number FN 116859 b
VAT-ID: ATU15138401, Austrian Tax ID: 264/4807
Diese E-Mail (mit zugehörigen Dateien) enthält möglicherweise Informationen,
die vertraulich sind, dem Urheberrecht unterliegen oder ein Geschäftsgeheimnis
darstellen. Falls Sie diese Nachricht irrtümlicherweise erhalten haben,
benachrichtigen Sie uns bitte umgehend, indem Sie eine Antwort senden, und
löschen Sie bitte diese E-Mail und Ihre Antwort darauf. Sämtliche aufgeführten
Ansichten oder Meinungen sind ausschließlich diejenigen des Autors und
entsprechen nicht notwendigerweise denen des Unternehmens Intergraph.
This E-Mail (and any attachments) may be confidential and protected by legal
privilege. If you are not the intended recipient please notify us immediately
by replying to the sender and delete this E-Mail and your reply from your
system. All the views and opinions published here are solely based on the
author's own opinion and should not be considered necessarily as reflecting the
opinion of Intergraph.
-----Original Message-----
From: Jim Graham [mailto:james.gra...@oracle.com]
Sent: Tuesday, October 6, 2015 8:38 PM
To: Hruda, Steve <steve.hr...@hexagongeospatial.com>
Cc: Sergey Bylokhov <sergey.bylok...@oracle.com>; 2d-dev
<2d-dev@openjdk.java.net>
Subject: Re: [OpenJDK 2D-Dev] <AWT Dev> Question: Area changes order of points
Hi Steve,
Area simplifies the shape into a normalized version that defines the same
interior area. It does not care what the original ordering of the points was
as it internalizes the shape, all it cares about is which areas are
geometrically inside vs. outside and it creates a path according to its own
internal policies that defines the same inside/outside boundaries.
There is no "trick" to customizing this behavior and I'm not entirely sure why
the point ordering would matter when you are performing CAG (Constructive Area Geometry)
operations - only interiors and exteriors should matter.
...jim
On 10/5/15 8:19 AM, Sergey Bylokhov wrote:
Hello,
I think this question is related to java2d, correct alias cc.
On 24.09.15 12:53, Hruda, Steve wrote:
I use the java.awt.geom.Area class to clip a shape. Today I noticed
that new Area(Shape) changes the orientation of the shape, so that I
get the points of the Area counter-clockwise in every case.
The following test shows you my problem.
https://drive.google.com/file/d/0B7P_rknS1TWxVGJ6a3hBaElBTk0/view?usp
=sharing
Is this a bug or do I something wrong?
Is there a trick to get the points in the correct order?