Arc of known length between two points

This seems so simple, but I can’t figure out how to do it :confounded:

I have an arc of known length (but unknown radius) that I want to strike between two points of known separation. The arc length is 920mm. The points are 840 apart. How do I fit the arc to the two points?

Here is an online calculator to determine the radius: enter the arc length and chord length = 628

(UK Rhino Reseller)

1 Like

And here is a slightly more accurate calculator:

which gives 628.36040 radius


IMO this could be a good option to add to the Arc command

1 Like

I was surprised that I couldn’t do this within Rhino. I can acheive all of the elements, but not combine them within a single command. It looks like it would be simple to add it to the command line options for Arc, 3 points.

Here is a RhinoScript based on Newton’s Method:

NewtonsArc.rvb (883 Bytes)

Please let me know of any changes required or if you need this converted to Python.

(UK Rhino Reseller / Scripting and Support)

Option Explicit
'Script written by <Keith Reffell>
'Script copyrighted by <>
'Script version 23 May 2016 07:55:53

Call Main()
Sub Main()    	
	Dim arc
	arc = rhino.GetReal("Enter Arc length") / 2
	If isNull(arc) Then
		Exit Sub
	End If
	Dim chord
	chord = rhino.GetReal("Enter Chord length") / 2

	If isNull(chord) Then
		Exit Sub
	End If
	Dim n
	n = chord / arc
	Dim x1	
	x1 = 1 - ((Sin(1) - (n * 1)) / (Cos(1) - n))
	Dim x2
	x2 = x1 - ((Sin(x1) - (n * x1)) / (Cos(x1) - n)) 	
	Do While round(x1, 6) <> round(x2, 6)
		x1 = x2    		
		x1 = x1 - ((Sin(x1) - (n * x1)) / (Cos(x1) - n))    		
		x2 = x1 - ((Sin(x1) - (n * x1)) / (Cos(x1) - n))
	Dim radius
	radius = chord / Sin(x2)   	
	rhino.Command "_Arc _StartPoint _Pause " & Chord * 2 & " _Pause _Radius " & Radius

End Sub
1 Like

Thanks Keith !

This script can be very useful. :smiley: