I wish to create a dynamic outline to a Shape
(AWT) by adding objects (with draw functions) to appropriate positions on screen along the shape's perimeter. I want a roughly even distance between each object. (An alternative approach to the same affect will be fine.)
How might I acquire the locations for these objects? I know shapes have a path iterator, but I have no idea how to use it.
You might look at a library such as the one described in A Shape Diagram Editor.
If you want to experiment, GraphPanel
is a simple object drawing program that features moveable, resizable, colored nodes connected by edges. If the nodes were a little smaller, they'd be moveable points on a Shape
that can be iterated as shown here for Polygon
.
Addendum: I want a roughly even distance between each object.
The class Node
exposes a number of static methods that operate on a List<Node>
such as selected
. Existing implementations serve, for example, to translate or resize multiple selections as a unit. Functions for Align
and Distribute
could be implemented similarly. I'd look at LayoutManger
as an example for the latter.
Use FlatteningPathIterator
to get points for Shape's
path.
Also you can use BasicStroke's
method
public Shape createStrokedShape(Shape s)
to get Shape's
outline with desire width.