Tinderbox Forum

Bezier handles in map links

I like map links. I like how now one can select the start / end of the link and bind it to top / bottom / left / right of notes. But sometimes a bit more manual control would be helpful, like when we want to keep notes perfectly aligned. Something like this:


Right now I’m using a hidden note (0 $Width and $Height) to make 2 step link. But it’s cumbersome… (see image)

I don’t know if it’s complex, or top priority, but I rest my case :slight_smile:

I like the idea, though bezier curves might be a little advanced for most users – and require experience and skill to operate.

Perhaps another option would be the ability to add mid-points to a link curve and drag the curve by the mid-point? For example, in OmniGraffle:

Note, that in this case, OmniGraffle considers the line to always extend from center of one figure to center of the other, and only displays the “visible” portion of the line. Perhaps this would make simpler the programmatic calculations needed when moving a note.

BTW, if you have OmniGraffle or similar, you can use figures like the one illustrated in the GIF as image adornments and take advantage of the graphics

Yes, mid-points would be enough :slight_smile: I have Affinity Designer, maybe I can try the adornments technique with it…

On the Add Midpoint proposal, does anyone happen to understand just what’s going on here?

I assume that we’re splitting the quaternary Bezier curve into two separate Bezier curves, and adding a constraint that the endpoints and slopes match where the two curves join.

It seems to me that we’d need one more constraint to actually define the curve. What is it?

I’ve never coded this myself, but I’m aware of a body of algorithm literature on the topic of midpoint bezier construction. For example

Since he tends to use existing libraries for his work, George Browning at Zengobi might be a resource for what’s available. Or the folks at Omni Group.

Bezier may take a while to implement (I guess). I wouldn’t mind having sonething like straight lines and break points like yEd Graph Editor has, if I could have them next week :wink:

We already have Bezier curves, actually. We currently choose the control points automatically; what were discussing is a way to manually change the control points, and/or to break a Bezier curve into two separate, but cleanly joined, segments.