[artworks] Anchor points and symmetry [was: Re: Ideas for new version]

  • From: Martin Wuerthner <lists@xxxxxxxxxxxxxxx>
  • To: artworks@xxxxxxxxxxxxx
  • Date: Wed, 10 Jan 2007 14:14:27 +0100

In message <4ea2fbeed7gav@xxxxxxxxxxxxxxxxxxxx>
          Gavin Crawford <gav@xxxxxxxxxxxxxxxxxxxx> wrote:

> A feature that would be really good is the ability to align selected
> nodes - in a similar way as the Alignment dialogue allows with objects.

Yes, this has been mentioned before and is a very worthwhile feature, 
but it is surprisingly tricky to achieve because moving an anchor 
point is a very complex operation in ArtWorks (as opposed to Draw). 
This is caused by the unique feature of "smooth" anchor points in 
ArtWorks. Anchor points are set to be "smooth" by default, so ArtWorks 
keeps the curve smooth when they are moved, which means the control 
points of neighbouring anchor points are adjusted.

By the way: Anchor points do not have to be smooth, they can be set to 
"sharp" in the path editing tool (in which case they behave like in 
Draw). This feature is so intuitive that most users probably miss it 
altogether, but go back to Draw and edit a path with several curves 
and you will notice what you are missing. ;-)

So, moving several points in one go by different amounts (which is 
what aligning would do) is a bit tricky, but I will probably have a 
look at it because I spent some time manually aligning anchor points 
yesterday and that was really tedious. Currently, the only way to do 
it is to open the Path info box, read the coordinate of the anchor 
point, select the other anchor point and manually enter the coordinate 
there.

Actually, what I was really doing was to create a symmetric shape, and 
I actually find myself having to doing this surprisingly often. So 
often that I am thinking of adding some support for symmetry. Aligning 
anchor points would solve part of the problem, but you need to align 
the control points, too, and there is no way to add a function to do 
that because control points cannot be selected. Besides, for symmetric 
shapes you would have to move the control points in the opposite way 
in one direction and align them in the other.

So, what I want to do is add support for automating the complete 
process of creating a symmetric shape and of redoing the symmetry 
after one half has been edited. At the same time I want to support 
having a symmetric part of a shape without the whole shape having to 
be symmetric (imagine drawing a silhouette of a rooftop with an 
elaborate chimney - the chimney itself is symmetric in itself but the 
overall shape of the silhouette may not be, e.g., if the chimney is 
not in the middle of the rooftop).

The difficult bit as always is telling the program what you want, 
i.e., which part of the shape should be adapted and where the symmetry 
axis is. I would like to do all this using the existing user 
interface, i.e., by selecting anchor points, so I cannot really see 
any way to specify an arbitrary axis. However, most symmetry will be 
for a vertical or horizontal axis anyway (and if any other is 
required, the shape can be rotated first by the user). So, we can 
define the axis by using an anchor point plus the information about 
the direction of the axis coming from the fact whether the "horizontal 
symmetry" or the "vertical symmetry" button is used.

It would then work as follows: You draw the shape including the first 
half of the symmetric part. You select the first anchor point of the 
part that is to be mirrored, then you select the anchor point at the 
end of the curve where the mirroring should take place - that anchor 
point defines the symmetry axis. Then you click on the horizontal or 
vertical symmetry button and the remaining half of the symmetric part 
is created.

So far so good, but sooner or later you are likely to want to edit the 
shape. After editing one half of the symmetric part you can force the 
other half to be updated by selecting the anchor point that starts the 
edited part, the anchor point on the axis and the anchor point that 
ends the mirrored part that is to be updated. Then you click on the 
symmetry button and the second half is updated.

Does that make any sense?

Martin
-- 
---------------------------------------------------------------------
Martin Wuerthner           MW Software          lists@xxxxxxxxxxxxxxx
---------------------------------------------------------------------

Other related posts:

  • » [artworks] Anchor points and symmetry [was: Re: Ideas for new version]