FashionFreedom / Seamly2D

Open source patternmaking software to democratize fashion.
https://seamly.io
GNU General Public License v3.0
574 stars 108 forks source link

Feature: Point - Tangent line from point to arc #869

Open slspencer opened 1 year ago

slspencer commented 1 year ago

Describe the new feature you would like to see in Seamly

Create a point by drawing a line that touches an arc from an outside point (returns a single point on the arc).

Example: Outside point = A13 ArcA = A3 center, Skyblue Arc Find the tangent point from A13 to the Skyblue Arc:

  1. c = length from A3 center to A13 outside point
  2. a = radius of Skyblue ArcA
  3. b = sqrt ( c^2 - a^2 )
  4. Create Red ArcB where A13 is center point and radius is b
  5. Create tangent point A14 by intersecting ArcA and ArcB
  6. Draw line (at user's option) from A13 to A14 image
slspencer commented 1 year ago

This tool would have:

The User could choose color & pen type for the line between A13 and A14 This tool would not draw Line_A3_A13 or the red arc

DSCaskey commented 1 year ago

I don't understand the need for a new tool... we can already accomplish this with existing tools, other than leaving a drawn line between A13_A14.... which is easy to do.

This tool would not draw Line_A3_A13 or the red arc

If you don't draw the red arc how will you ever be able to select it later? But that's beside the point - you don't need Arc B, as Point A14 "IS" the tangent point of Arc A and point A13... as well as being the intersection of the 2 arcs. We already have the Intersect Tangent and Arc Tool - It just doesn't leave the Line drawn... as well as adding the Line object so (in this ex) Line_A13_A14 is available as a variable. Which I suspect is what you're really after. Again, this is easy enough to do, adding as whole new tool is not.

slspencer commented 1 year ago

This tool wouldn't require the user to create an arc first. All the user needs are the three points. The user is the beneficiary here. This software's mission is to automate repetitive tasks to allow the designer to focus on creativity. So let's keep it up. Just like gamers write LUA scripts of multiple game instructions to reduce their keystrokes while improving precision and accuracy, it's the same thing here.

I defined our current toolset the way a RISC chip is designed - at the base is a set of minimal plane geometry tools that do one specific thing. This creates power and speed. The next step is to enhance creativity - combine these tools to make Seamly do complex things quickly, efficiently, and with a minimum of repetitive user steps.

On the forum, whenever I refer to the tools that were in the prototype but weren't included in the current code base, these are the tools I'm referring to. You know, these are the tools that allow us to focus on creativity. The tools that in a single step:

And yes once we have these more complex tools defined we should start to discuss how to enable users to program functions that replicate their workflow, like LUA scripting for designs. These should enable teams to follow a "style guide", etc.

DSCaskey commented 1 year ago

This tool wouldn't require the user to create an arc first. All they need are the three points.

Unless I'm missing something that's not what you stated:

This tool would have:

On Fri, Apr 21, 2023, 1:32 PM slspencer @.***> wrote:

This tool wouldn't require the user to create an arc first. All they need are the three points. The user is the beneficiary here. This software's mission is to automates repetitive tasks to allow the designer to focus on creativity. So let's keep it up. Just like gamers write LUA scripts of multiple game instructions to reduce their keystrokes while improving precision and accuracy, it's the same thing here.

I defined our current toolset the way a RISC chip is designed - at the base is a set of minimal plane geometry tools that do one specific thing. This creates power and speed. The next step is to enhance creativity - combine these tools to make Seamly do complex things quickly, efficiently, and with a minimum of repetitive user steps.

On the forum, whenever I refer to the tools that were in the prototype but weren't included in the current code base, these are the tools are what I'm referring to. You know, these are the tools that allow us to focus on creativity. The tools that in a single step:

  • create and true a dart, hether on a line or on a curve, which then enable that dart to be manipulated as a single unit during moving and rotation
  • distribute buttons and create the matching buttonholes the proper width for that diameter of button
  • create drafts for collars, sleeves, cuffs, waistbands that fit to the main draft - should be able to select from multiple pre-defined styles
  • and there's more...

And yes once we have these more complex tools defined we should start to discuss how to enable users to program functions that replicate their workflow, like LUA scripting for designs. These should enable teams to follow a "style guide", etc.

— Reply to this email directly, view it on GitHub https://github.com/FashionFreedom/Seamly2D/issues/869#issuecomment-1518138269, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHTXADU55NNXZ726MODSKC3XCLADZANCNFSM6AAAAAAVFBHAZE . You are receiving this because you commented.Message ID: @.***>

slspencer commented 1 year ago

You're right, no need to actually create the arc first if you know three items: arc center point, arc radius, and the outside point. This would return the arc's tangent point to the outside point.