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

  • From: Gavin Crawford <gav@xxxxxxxxxxxxxxxxxxxx>
  • To: artworks@xxxxxxxxxxxxx
  • Date: Fri, 26 Jan 2007 11:03:24 +0000 (GMT)

In article <358803a34e.martin@xxxxxxxxxxxxxxxxxxx>,
   Martin Wuerthner <lists@xxxxxxxxxxxxxxx> wrote:
> 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.

Yes, I can see that. My main requirement would usually be for line
segments, as opposed to curves, as I often need to ensure a vertical or
horizontal line is correctly positioned. I notice that the ArtWorks
already calculates the smoothing effect of curved segments when dragging
an anchor point with the mouse, so could the same calculations be used
when the anchor points are aligned? In other words, if two points were
vertically aligned, it would be the same as if they had been dragged
with the mouse to the required x value, with the control points being
calculated accordingly, I would guess that the routine would go through
each control point in turn and perform the alignment, so the first point
would be moved and it's control points calculated according to the other
points, and so on.

> 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. ;-)

Well that's the other was of doing it - make all the smooth points into
sharp points when the anchors are aligned. To re-smooth the points each
anchor can then be double-clicked which has the effect of switching the
smooth/sharp effect. (I mentioned that for those that didn't know!)
Or could that be done automatically? So that any anchors that are moved
due to an alignment can be first switched to sharp (if they were smooth)
then moved and switched back to smooth to re-calculate the line segment.
... just a thought!

> 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.

Yes, something I do very regularly and it is very tedious when there are
a lot of points to adjust.

> 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.

Yes, I'm with you so far. It sounds very useful.

> 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?

I think so. I got a little lost with the last bit about editing the
shape. Is the whole shape always an editable path? So, if you have drawn
the first half, then mirrored it, you can just edit the path of the
mirrored section? Or would it need to be 'made into a path' in a similar
way as the replicate tool has a 'Make objects'. The reason I'm a little
puzzled is I'm not sure what would happen if (for example) the mirrored
part is edited to include extra control points and has extra line
segments added, then the first half is re-mirrored to update the
symmetry. Would the edited second (mirrored) half be lost?

It would be an interesting feature that I'd find very useful. So if you
want to discuss it further off list feel free to email me.

-- 
Gavin Crawford
email: gav@xxxxxxxxxxxxxxxxxxxx
  web: www.crawford-print.co.uk

Other related posts: