Lo cheng wei was graduated from digital architecture studio in Taiwan, focus on 3D printer, Digital fabrication,Digital computational design, interactive design, opensource. Lo cheng wei is a co founder in fabraft design studio which is establish in 2013.
facebook; https://www.facebook.com/Fabraft
website; http://www.fabraft.com/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// vb legacy parts -> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
If (C Is Nothing) Then Return If (N <= 0) Then Return If (Not C.IsClosed) Then Print("Your input curve is not closed.") Return End If Dim bbox As OnBoundingBox = C.BoundingBox() Dim U As New OnInterval(bbox.Min().x, bbox.Max().x) Dim V As New OnInterval(bbox.Min().y, bbox.Max().y) Dim rnd As New Random(7) Dim circles As New List(Of OnCircle) Dim attempts As Int32 = 0 Do While (attempts < 1000) attempts += 1 Dim point As New On3dPoint(U.ParameterAt(rnd.NextDouble()), V.ParameterAt(rnd.NextDouble()), 0) If (Rhutil.RhinoPointInPlanarClosedCurve(point, C, OnPlane.World_xy) <> 1) Then Continue Do For Each crc As OnCircle In circles If (point.DistanceTo(crc.Center) < crc.radius) Then Continue Do Next Dim ct As Double : C.GetClosestPoint(point, ct) Dim cp As On3dPoint = C.PointAt(ct) Dim radius As Double = point.DistanceTo(cp) For Each crc As OnCircle In circles Dim dist As Double = point.DistanceTo(crc.Center) - crc.radius If (dist < radius) Then radius = dist Next Dim circle As New OnCircle(point, radius) circles.add(circle) If (circles.Count >= N) Then Exit Do attempts = 0 Loop A = circles