New tool: intersection of arcs

Issue #232 resolved
Former user created an issue

I miss a tool to create a new point as the result of the intersection of two arcs. When I construct a bodice front according to Hofenbitzer (quite similar to Mueller and Sohn) I need to draw an arc with radius shoulder width around a side neck point. Then I draw and arc around a certain point on the bust line with the height of the shoulder. Where these two arcs intersect is the shoulder point. Currently I need to draw the two arcs and then draw a line that intersects with one arc and place that line VISUALLY such that it goes through the point where the arcs meet. This will not scale correctly as soon as I change a measurement. Is this feature really missing, or did I miss how to do that using the other tools? Thanks

Comments (17)

  1. Roman Telezhynskyi repo owner

    You are right, we don't have such tool. Main problem how handle arcs position. Arcs can have one intersection, two intersections, zero intersections. Especially i am interesting in case where we have two intersections.

    Actually i can try create for you instruction what need to do for adding new tool. And we can make it together. Because i can't right now begin creation myself. In source code we have many examples how works tools.

  2. Former user Account Deleted

    I would leave it to the user of the tool specify the arcs such that there is only one intersection. Maybe I should go and download the sources, and update my (very old) qt and (a bit less old) c++ skills... I use c# these days but I see that is not a good options if you want to be platform independent

  3. Roman Telezhynskyi repo owner

    What i know exactly it is that you plan "leave it to the user" will not work. We should handle all cases.

    In previous such cases i use next trick. I just ignore second point. What do you think about it? Allow user choose which point take i also don't like. Too difficult.

  4. Susan Spencer

    Ignoring the 2nd point won't be accurate in all cases.

    Could we show the user the intersection points, and ask user which to use?

    If there is no intersection found, a message to the user will be sufficient.

  5. Roman Telezhynskyi repo owner

    If there is no intersection found, a message to the user will be sufficient.

    I don't like. Just simple case, 6 tools was broken and now don't have point of intersection. User will have 6 message boxes about problems. Instead i just silently set such points to (0, 0) and user will see yourself that something with pattern wrong and fix it without messages.

    Such messages i like more like warnings that show problems only if user want know what's something wrong without showing each time message boxes. We can avoid it. But your idea show more information interesting. Compiler show warnings, but it is not stop him continue build code. Browser try fix wrong html code. And user even don't know that something was wrong.

    Ignoring the 2nd point won't be accurate in all cases.

    Agree that's why we don't have such tool in program.

    Could we show the user the intersection points, and ask user which to use?

    We had one point, after changes we have two points now which to use? Again ask user? That's why i seek rule how select points.

  6. Susan Spencer

    HTH In my python program I use a combination of functions to determine which intersection to use.

    intersectCircles(c1, r1, c2, r2) --- returns an array of intersection points between two circles defined by center & radius. Can return an empty array, an array of one point, or an array of two points * [ ] [(x1, y1)] [(x1, y1), (x2, y2)]*

    highest(array) - accepts an array of points, returns the point that is visibly higher than all other array points -- has the lowest y value lowest(array) - accepts an array of points, returns the point that is visibly lower than all other array points -- has the highest y value

    leftmost(array) - accepts an array of points, returns the point that is visibly to the left of all other array points -- has the lowest x value rightmost(array) - accepts an array of points, returns the point that is visibly to the right of all other array points -- has the highest x value

    To intersect circles on the front right bodice, the formula is: rightmost(intersectCircles(c1, r1, c2, r2))

    To intersect circles on the back right bodice, the formula is: leftmost(intersectCircles(c3, r3, c4, r4))

    In Valentina, the user could be shown the two points highlighted, and select the point desired. Based on the user selection, the correct formula can be written to the pattern. The user doesn't need to interact with the pattern each time the pattern is run, only when the point is defined.

  7. Former user Account Deleted

    As in Valentina I can draw arcs and not circles, I'm able to determine by specifying the arc how many points I want. So I think the tool should produce the number of points it finds. I think the workflow would be: 1. draw one arc 2. draw second arc and make sure the intersection(s) is/are where you want it. 3. select the new tool and select arc1 and arc2 4. intersections are marked as new points if the user is not satisfied, he can undo and change the arcs. This is something I would find sufficient. Or a dialog comes up and lets me select which of the points found I want to have.

  8. Roman Telezhynskyi repo owner

    Or a dialog comes up and lets me select which of the points found I want to have.

    Good, agree. I like Susan idea (highest point and leftmost point). It is very important return only one point.

  9. Former user Account Deleted

    Incomplete Bodice pattern needs Intersect Arcs and Better Creation of Curve Control Handles.pngThis new tool is necessary for the patternmaking system that I use for custom sizing. It's been added to the v.0.4.0 roadmap

    To complete the dart,

    1. the remaining waist segment should intersect with the other leg of the dart, which is an intersection of two arcs.

    2. the armscye curve needs control handles that are perpendicular to the side seam and the shoulder seam. (#233 & #216)

    3. point A16 should be perpendicular to the side seam. Need new tool to create A16 on arc where Line_A16_A15 is tangent to circle with center A17 and radius Line A17_A16 (#209)

  10. Log in to comment