Perry Monschau
Perry Monschau

Reputation: 901

Java - Drawing a dynamic shape outline

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.

Upvotes: 0

Views: 1652

Answers (2)

StanislavL
StanislavL

Reputation: 57381

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.

Upvotes: 2

trashgod
trashgod

Reputation: 205785

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.

Upvotes: 2

Related Questions