Another "very mathematical" way of making curves!

The method I’m going to tell about is a part of invented in late USSR EMKO system. It was developed specifically to use with computers so it doesn’t have “use a french curve” instructions and things like that. Isn’t that nice?

The main idea is to break down all the curves into arcs with defined center and radius. Here is how I use it in Valentina.


That’s what we start with. Н01 and H03 are shoulder points, B11_B21 is the bottom line of the armhole

  1. The first thing we do - find points where armhole touches the bottom line and vertical lines

Line_B11_B4 = Line_B11_B21 * 0,6 (on B11_B21)

Line_B11_H11 = Line_B11_B4 (up vertically)

Line_B12_H2 = Line_B4_B21 (up vertically)

That will be start and end points of the first two arcs

  1. Find center points. These two arcs are always 90° so their center points may be easily found using “point from X and Y of two other points” tool


  1. Now draw the arcs.

Arc tool, center point H12, radius Line_В11_В4, first angle 180, second angle 270

Arc tool, center point H22, radius Line_В4_В21, first angle 270, second angle 360 or 0


  1. Now find center points for other two arcs. Find the intersection point of back shoulder line (A21_H01 in my drawing) with H11_H12. Connect the point you got (H13) with H01. Line_H13_H01 is radius of two intersecting circles with centers in points H11 and H01. The point of intersection is the center of the third arc. (Н131)


  1. The next thing is finding the angles of the arc. This time 90 * x won’t work) We will use AngleLine option in formulas, so we need to draw lines with needed angles. Just connect Н131 with H11 and H01 (Make sure to click H131 first)

  2. Finally, draw the arc


  1. The process is similar for the last arc. Find a point of intersection of A81_H03 and H2_H22 (point H121). Use H03_H121 as the radius of two circles (centers are H2 and H03). Connect center point with start and end points. Draw an arc.


That’s it! A little messy (I wish I could use AngleLine without actually connecting the points) but it scales perfectly with different measurements or when you need to make armhole longer, for example.


Wow! @Krolich, that’s really scientific :slight_smile: Thank you, I’ll give it a try, too.

1 Like



Seriously, though, I LOVE it. While a little more of a hassle to create, it should deal with a number of technical issues, like the fact that creating parallel bezier curves is decidedly non-trivial (i.e. practically impossible). It also makes rendering FAR faster and easier, and I believe that there are a number of machine-cutting issues what would vanish. That being said, the ‘Krolich Kurves Method’ looks to be a lot more complicated to lay out than the ‘Kolson Kurves Method’, so I think that both should have tutorials in the wiki. (I’ve attached a simple PDF of your system, as I want to print it out.)

Krolich Kurves Method.pdf (229.1 KB)


I also LOVE this method :slight_smile:

Here are my test files:

Close Fitting Bodice Block3.val (21.1 KB)

Women 12 measurements.vit (1.1 KB)

There’s absolutely no way the curves can go out of whack :slight_smile: .

1 Like

@KeithFromCanada Haha thank you! Can I tell everyone I’m a certified witch now?

@Grace you don’t need to draw every circle separately, there is a tool “point of intersection circles”, check it out! You have to pick two points, write in two radiuses and pick which of two resulting points you need



Check THIS out! (The graphics are interactive.)


Looks interesting! I think I may later try to re-make curves as arcs using this logic on my bra base pattern (those curves where the cup is to be sewn in the main part are a pain)

Now I’m reading into how sleeve capes are made with the arc method so this whole thing makes more and more sense to me

UPD my dad is drunk and trying to convince me that it’s a theme for Ph.D. thesis :grin:

1 Like

I think you definitely can :slight_smile:

Bleh! definitely :frowning: a witch :slight_smile:

Haha! how cool would it be if we could have the same interactive curve tools in Valentina :slight_smile:

1 Like

@Krolich, I checked your system, and there is a (soluble, I think) issue with it. For curves to join smoothly, they have to add up to 180 degrees where they meet. This means that both centers must line up with the join. In your example, H12 & H22 line up with the join at B4, so the join is ‘rigorously smooth’, so to speak. H131 & H12, on the other hand, do not line up with the join at H11, so the join angle is not 180 degrees. (This can be seen as the ‘bulge’ to the left of A3_B11.)

The solution requires that

  1. H01 & H12 not move. (Obviously.)
  2. H01_H131 & H11_H131 have the same length. (Again, obviously.)
  3. Arc H01_H11 must stay within bounds.
  4. H11_H131 MUST travel through H12.
  5. H11 can only ‘slide’ along the curves.

…and there is the rub. How do you define such an arc in a formula or two?

(Maybe it should be your thesis!)

To be fair, as long as the shifting of the centers is small, it won’t really make much difference in the real world. On the other hand, if you can come up with a method for fairly easily creating such a series of arcs, you would win much applause.

…and I’ve solved it after a good power nap with a bit of trig. I’ll explain the diagram below.

Basically, any two points on a circle (A & B) plus the center (C) form an isosceles triangle, where the CA & CB radii (and therefore the outer two angles) are equal.

Looking at the diagram, we know the angle at B (…and therefore the angle at A) and the length of AB. The angle at C is simply 180 - (A + B). What we don’t know is the length of lines AC or, FAR more importantly, as it determines the center of the arc, XC

Doing a bit of Googling to refresh my memory, I was reminded that sin(B) / AC = sin(C) / AB. As XC = AC - BX (and what we want is to place C on the line that travels through both B and X, moving things around gives me the formula XC = (AB / sin(C)) * sin(B) - XB.

As the angles are absolutes that must be turned into relatives, creating variables that do so in the background keeps everything nice and tidy, and so the formula for the length of XC is ((Line_A_B / sinD(#c)) * sinD(#b)) - Line_X_B

…except the variables table seems to explode when you use measurements to calculate things, so what I have to use is a rather unwieldy (Line_A_B / sinD(180 - (((AngleLine_A_B - 180)) + ((AngleLine_A_B - 180))))) * sinD(AngleLine_A_B - 180) - Line_X_B. :disappointed:

(Oh, yes. You MUST use ‘sinD’ instead of ‘sin’, as, while Valentina uses regular degrees for angles, the trig functions use radians by default. The ‘D’ after a trig function means it uses degrees for calculations. Forgetting the difference made me want to pull out my hair for a while there.)

It works VERY well, but, considering what a right royal pain it was to figure out and then put the formula together, I propose a tool is added to create an arc from A to B with the center along the line that includes X. (i.e. ‘Pick three points.’)

(Of course, there is still the issue that the ends of the curve(s) won’t necessarily be at the proper angle to the adjoining lines.)

Hope this helps!


good find. i used to know all that when i aced geometry about a million years ago

1 Like

If you want arcs to line up at 180 АND angle in point H1 to be 90 (which is the usual requirement for patterns) there is just no such point that might be a center of that circle. Somewhere here we must lower the bar of how perfect geometry of the pattern should be :sweat_smile:


Yup. That was my conclusion, as well. My thought was to use yours when I know that the angles work out, and mine when they don’t. Another thought was perhaps creating a short line at 90 (or w/e), then attaching the arc to the end of it.

1 Like


Here is how I transformed a “custom” curve into arcs (and lines) using tangents and perpendiculars. All points on lines are made with CurrentLength / x type of formula so they should scale nicely when measurements change

Bezier curve (green) and arcs+lines (pink) comparison


The process


Of course, they don’t all meet at 180 but I think the result is excellent for practical patternmaking. Now I’m going to check how corresponding curves will… well, correspond if measurements change

1 Like

This is getting very complicated :slight_smile:

Have you tried playing with the Elliptical Tool?



If it’s possible to solve what we have here with Elliptical arc, it will require some superior wizardry :thinking:

As I see, It will work easily (put in two radii and have a nice arc between points) only for 90° arcs

1 Like

The elliptical tool is badly broken. This is what a 5x20 ellipse looks like:

2017-09-11 (1)

(…and yes, I reported it.)

1 Like

Hmmm, I don’t see a picture :frowning:

1 Like