Apache OpenOffice (AOO) Bugzilla – Issue 80627
Setting dimension constraints to Draw objects
Last modified: 2013-02-07 22:43:13 UTC
I would like to be able to set various constraints to the Draw objects. In this way, one could easily construct complex graphics with minimal effort. There should be position, length and angle constraints. For an excellent demo showing the power of setting constraints, see http://www.geometryexpressions.com/demos.php. Please run all the 6 demos to have a better understanding of what I mean with constraints.
That would add features of "Dynamic Geometry Software" to Draw (http://en.wikipedia.org/wiki/Interactive_geometry_software). It's a valid feature request. There are so many good DGS, that one might ask, whether OOo should get such features. I personally think, some of the features would be really useful in draw, for example bind a point to a line.
The primary reason for adding this functionality is to allow precision drawing. Complex drawings contain multiple elements that need precise dimensions / positions. This is especially troubling when one wants - to add a new object that has some defined dimensions based on existing objects - needs to modify / scale the initial drawing and upon this has to edit every object manually Therefore, I believe this feature needs to be added to draw and is especially important for technical drawings. I already thought about some implementation details. Basically, I believe that there are firstly 4 large groups of *"objects"* that should have constraining properties: OBJECTS ======= A.) POINTS B.) LINES C.) SEGMENTS D.) CIRCLES Of course, any complex object can have built in constraints, but these are the more fundamental ones. A.) POINTS ========== A point can be constrained as follows: 1.) fixed position - aka its coordinates 2.) defined position on a segment - e.g. middle of a segment 3.) intersection of 2 other (non-point) objects - 2 lines [0 points if parallel, 1 point, undefined if same line] - 1 line + 1 circle [0, 1 or 2 points] - 2 circles [0, 1, 2 points or undefined] B.) LINES ========= Constraints to a line: 1.) 2 points 2.) 1 point + 1 angle to a reference line/segment 3.) 1 point + tangent to a circle [0 or 2 lines, or 1 line IF point is on the circle] 4.) tangent to 2 circles [0,1,2,3,4 lines depending on circles] C. SEGMENT ========== 1.) 2 points 2.) 1 line + length of another segment [more advanced: length computed from various other segments] D.) CIRCLES =========== 1.) center point + radius length - special cases: center + tangent to line/segment; - segment as diameter 2.) 3 non-collinear points 3.) tangent to a line + 2 points on same side of line 4.) tangent to 2 lines + 1 point [2 circles] 5.) tangent to 3 lines [0, 2, 4 circles possible] Not yet discussed: ANGLES, TRIANGLES
Please run also the *Automatic Demo* on http://mathsrv.ku-eichstaett.de/MGF/homes/grothmann/java/zirkel/doc_en/Demos/index.html to see some further uses.
This is a feature.
Changed Summary to better reflect the feature request.