algorithmic modeling for Rhino
Hi ,all.
I am trying to draw lines between two list of points.
List A has 40 points, and List B has 50 points.
I just wonder, is there any code as same as 'shortest list, longest lsit, cross reference' function in Grasshopper component?
I write kind of 'longest list' using conditional sentence like below,
---------------------------------------------------------
Point3d[] pt00 = new Point3d[40];
Point3d[] pt01 = new Point3d[50];
crv00[0].DivideByCount(40, true, out pt00);
crv00[1].DivideByCount(50, true, out pt01);
Line ln00;
List<Line> list00 = new List<Line>();
for (int i = 0; i < pt01.Length; i++) {
if (i > (pt00.Length - 1)) {
ln00 = new Line(pt00[pt00.Length - 1], pt01[i]);
list00.Add(ln00);
} else {
ln00 = new Line(pt00[i], pt01[i]);
list00.Add(ln00);
}
}
A = list00;
---------------------------------------------------------
I hope there would be good way! :)
Thanks!!
Tags:
Nope, it's not exposed as a general utility function or class. But of course the logic is fairly simple.
//Shortest list
for (int i = 0; i < Math.Min(list0.Count, list1.Count); i++)
{
int i0 = i;
int i1 = i;
....
}
//Longest list
for (int i = 0; i < Math.Max(list0.Count, list1.Count); i++)
{
int i0 = Math.Min(i, list0.Count - 1);
int i1 = Math.Min(i, list1.Count - 1);
....
}
//Cross Reference
for (int i1 = 0; i1 < list1.Count; i1++)
{
for (int i0 = 0; i0 < list0.Count; i0++)
{
....
}
}
--
David Rutten
david@mcneel.com
Poprad, Slovakia
Welcome to
Grasshopper
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
© 2024 Created by Scott Davidson. Powered by