Quoth Hans Breuer: > Am 29.05.2008 05:37, Don Blaheta schrieb: > > The biggest, I think, is that "corner radius" is being used to mean two > > different things: the radius of rounding for a rounded rectangle, and > > the radius of rounding for the cap of a regular rectangle. > > If I understand the terminology correctly 'caps' are only at the end of > lines, see e.g.: [...] ; but we need 'joins' here because we are > talking about the radius between line segments, see: [...]
Aha, I learn something every day. Yes, I've been using the word "cap" but I meant "join". Reading the rest of your email, I'm definitely convinced that trying to merge the join style with the corner radius is a losing proposition, but I like this: > > "Rounded" would make a radius of > > exactly half the linewidth. Polylines and zigzaglines get the > > checkbox as well instead of a corner radius option. > > The almost independent parameter which could be given to all the renderers > is the line join. Maybe we should allow the user to set it, instead of > hardcoding the behaviour for radius>=0 && radius<line_width? Yes! I didn't realise that JOIN_MITER and so forth were already-available options, but having a single parameter for all objects-with-corners that said whether to render it as pointy or round would be pretty much what I was hoping for before I got carried away with the separate radius stuff. > > How do Visio and other such programs handle any of this? > > I Looked at some other renderers Dia has - namely antialised vias cairo and > wmf and the implmentation looks like the radius is applied at the control > rectangle. For radius 0 it gives sharp edges, for 0.1 it has an outer > radius of almost half of the line width. Almost half? Surely it is slightly more than half? This still strikes me as a bit hacky (in that it's only a convention that has "0.0" meaning "mitred join"---telling it to round the join at a radius of 0 in from the control point would be perfectly sensible too). Its meaning is also not quite transparent, which triggers a usability tradeoff: permitting some range of roundedness in the joins (though not a _full_ range of roundedness), at the cost of having a single numeric parameter whose *primary* modality is really just zero/nonzero. Even if the underlying renderers *can* handle the join-radius parameter as you describe, it might be better to just have a "join type" pulldown (mitre or round). It would be irrelevant to an actual rounded rectangle (no joins!) but relevant to polylines and zigzaglines. Oh, and polygons. Oh! and cusp-controlled bezierlines and beziergons. (Which, as I check right now, appear to have a *bevel* join, actually, at least in the gdk renderer.) -- -=-Don [EMAIL PROTECTED]<http://www.blahedo.org/>-=- "Yeah, I never realized what fun it would be to do interviews until I remembered how neurotic, self-important and generally unable to converse in a relaxed casual way law students are." --Jonathan Wagner _______________________________________________ Dia-list mailing list Dia-list@gnome.org http://mail.gnome.org/mailman/listinfo/dia-list FAQ at http://live.gnome.org/Dia/Faq Main page at http://live.gnome.org/Dia