Hello everyone
I need to modify the amplitude of the sine curve offered in the Dynamo Primer
https://primer.dynamobim.org/05_Geometry-for-Computational-Design/5-4_curves.html
I need something like the solution applied for Grasshopper, but in Dynamo
Thanks a lot
Hi @joavegaco !
Kinf of topic i love
You can play with that script (it is a work in progress…) :
curve_by_cos_C.dyn (30.1 KB)
1 Like
Just out of curiosity…
What do you use these kind of scripts for?
Thanks a lot. That’s great. I’m going to adapt it to my needings.
I have to create a script for the facade of Messe Basel Hall of Herzog & de Meuron.
As you can see, the peak of each element converges with an imaginary surface. And the axis of each sequence of elements converges with the isolines of imaginary surface.
2 Likes
Amazing!
Thank you for explaining
You could also do it mathematically
(Should also be possible with nodes)
n = 500;
w = 10;
h = 4;
x = 0..Math.PI*2*10..#n;
y = Math.Sin(0..360*w..#n) * (h..0.1..#n);
p = Point.ByCoordinates(x,y);
c = NurbsCurve.ByPoints(p);
To make it flow along a base curve, a little more work
//Base Curve
c1 = NurbsCurve.ByPoints
(Point.ByCoordinates([0,10,50],[0,10,0]));
//Number of Divisions
n = 500;
//Scale Wave Extent
w = 10;
//Scale Wave Height
h = 5;
//Points on Curve
p1 = c1.PointAtParameter(0..1..#n);
//Normal at Points
n1 = c1.NormalAtParameter(0..1..#n);
//Scale wrt Base Curve Length
s = c1.Length/(Math.PiTimes2*w);
y = Math.Sin(0..360*w..#n) * (h..0.1..#n) * s;
p2 = p1.Translate(n1,y);
//Nurbs Curve
c2 = NurbsCurve.ByPoints(p2);
4 Likes
Thanks a lot. That is going to help me.
1 Like