Le Tue, Aug 05, 2003, à 09:24:25AM -0500, Lars Clausen a écrit:
> On 5 Aug 2003, Sven Vermeulen wrote:
> > Hi,
> > I have some features that I'd like to see in DIA and love to help with,
> > but I would like some feedback on things.
> > The first feature is a double-line for the normal line. Currently, dia
> > has LINESTYLE_SOLID, LINESTYLE_DASHED, LINESTYLE_DASH_DOT,
> > LINESTYLE_DASH_DOT_DOT, LINESTYLE_DOTTED in the LineStyle. I'd like to
> > have a LINESTYLE_DOUBLE or similar in it. However, such a
> > LINESTYLE_DOUBLE would probably require lots of tweaks (for instance the
> > ending points of the line (ARROW_*)). Is it possible in the current code
> > to "easily" add such a double-line? Or would it be preferable to create a
> > special shape for it?
> > If a seperate shape is advised, how can I make sure that this shape has
> > the same possibilities as the current line wrt the ending points
> > (ARROW_*) without creating a shape for each possible combination?
> I don't think the arrows are so much of a problem, they can already handle
> wide lines (which essentially this is), but rendering can be tricky. It'd
> be easy to make a wide black line with a narrower white line on top, that'd
> even work with most output formats and with all the line types. However,
> if you want to be able to see through the middle, it gets tricky for the
> non-straight lines.
Well, except for the non-straight part, I did something like that for the
GRAFCET - Vergent object (when in "And" mode). What I did was offset the
main line by half a width on either side, and draw two lines instead (so the
total width is 3 * the basic line width).
I don't think it's that complicated to do polylines either; all you need is
to offset the points along the bisector (you need to offset by
normal_offset/cos(angle_between_segments) and that's it).
For Beziers, it gets a little more interesting, but can be handled
relatively easily too as we handle only a specific case of Beziers: you want
to offset the end points the same way as we'd offset points in a
line/polyline, and offset the tangency control points so that the new
tangent is parallel to the unoffset tangent (so you compute the endpoint
offset vectors, and apply them to both the endpoints and their nearest
> > The second feature is regarding the middlemousebutton menu: currently, if
> > you press the middle mouse button on a line, it gives you
> > Line
> > -----------------------
> > Add connection point
> > Delete connection point
> > I'd like to have extra options that add a bridge, meaning that two lines
> > that cross each other cannot confuse the users about whereto what line
> > goes. As an image sais more than a thousand words, please view
> > http://studwww.ugent.be/~sjvermeu/dia-0001.png. Sorry for the freehand
> > draw :)
> Yes, I see it. That is a very useful thing for clarifying diagrams.
> > That bridge should be moveable though, so it's like "Add corner" in the
> > polyline, only it's not a corner but some small arc.
> While it could be moveable by hand as easily, it'd probably make more sense
> to have it be associated with the crossing line, so that if either line
> moves, the bridge is moved accordingly. In fact, that style would be
> easier internally, as it doesn't require adding a new handle.
Sort of a "draw a bridge if crosses another line" flag on the line, coupled
with a "bridge radius" property (or perhaps ratio-to-line-width).
I'm not totally sure whether this would be better done in the standard line
& polyline, or whether it would be better to create a specialised "electric
engineering polyline" (and ortholine) object.
This new object would have a connpoint_line on each of its segments (so that
you could add connection points where convenient), would have this "bridge"
flag and radius/ratio, and the next logical step is to make it draw a dot on
connected connection points.
Whoever implements this, please keep the normal line attributes, so that it
can be re-used in connex fields (pneumatic/hydraulic spring to my mind).
> It's not going to happen in this upcoming release, but it's worth keeping
> in mind. For electronics diagrams, it's an essential feature.
seconded and more (don't think only in terms of electrons, there are other
interesting particles to move)