Nodebundle for playing with nodes
 1-20  …  1721-1740  1741-1760  1761-1780  1781-1800  1801-1820  …  1841-1859
Thread Split: Some posts in this thread have been moved here

Previous
Next
 From:  bemfarmer
7777.1761 
Is there some way to add functions to MathPts node?
For example, perlinnoisefn.js, delaunator.js, and basicFunctions.js have functions used by other programs.

A very simple example would be say ellipticfn.js containing several functions, including
this.cosh = function(a,x)
{
var y = (a/2) * ( Math.exp(x/a) + Math.exp(-x/a));
return y;
}

Is there some way to get MathPts f(u,v) to be able to use cosh(a,u) with say elliptic.cosh(a,u)?

(Of course the catenary equation (a/2)* )exp(u/a) + exp(-u/a)) can be used in MathPts directly, but some other
desired functions are very much more complicated, with dozens of lines of code.)

- Brian
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7777.1762 
Trying to debug a node program.
Is there some way to add an alert message to a node program?

Example:

function alert( msg )
{
moi.ui.commandUI.alert( msg );
}

alert( 'a = \t' + a + '\n\n' + ' b = \t' + b );


- Brian
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
7777.1763 In reply to 7777.1762 
Hi Brian, try moi.ui.alert( 'msg' );

- Michael
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7777.1764 In reply to 7777.1763 
Thank you Michael.
Now the alert works. Each pass through the for loop creates a new alert.
The script probably has minor errors.

- Brian

Idea:
Include code around and/or in the for loop to show multiple progressive results for each variable.
In a row/column format. One row per variable. Each column is another pass through the for loop.
Say batch 10 alerts into one...
(My other projects have higher priority:-)

https://stackoverflow.com/questions/25320250/convert-multiple-alerts-to-one-alert
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7777.1765 
My latest script is creating junk points, so did some web exploring.

A math.js library of many additional functions, from 2017 to present.
(complex numbers, hyperbolic, elliptic, Weierstrass, etc.)

May be usable for MoI scripts and Nodes?
Still would need a "link" for MathPts node, somehow?

https://github.com/paulmasson/math

Barely began to explore the library.

- Brian
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7777.1766 
Update to CMC6 node, creates Nodoids and Unduloids, in particular their profile curves.

Rebuild, Mirror, Array, and Revolve left to the user.

Place CMC6.js and the helper functions ellipsefn.js file in the nodeeditor>nodes>extension directory.
CMC6_test.nod produces symmetric half of the nodary curve.

The CMC6 node script creates profile curves in the xy plane, including of most interest, the nodary curve and the undulary curve, depending upon the values of mu and lambda.

The Delaunay Constant Mean Curvature (CMC) surfaces consist of the cylinder, sphere, catenoid, unduloid, and nodoid. The surfaces may be produced by revolving their respective profile curves about a revolve axis equal to the rolling (roulette) line, which was used to generate the profiles. The profile curves are the roulettes of line, circle, parabola, ellipse, or hyperbola, along said roulette line.

The roulette axis for the nodary curve passes through the upper vertex of the hyperbola, which the script has not yet found.

There are additional notes in the comments in the script js file.

This node script uses ellipticfn.js for F(phi,k) and E(phi,k) the incompletic elliptic integrals of the first and second kind. It is assumed that "k" in the paper is the same as"k" in the elliptic functions, rather that using "k*k" in the functions.

- Brian

(Strangely, the y values must be divided by 2 to get the proper sphere and cylinder profiles.)

[See post 1777 for updated CMC files.]

EDITED: 30 Nov 2020 by BEMFARMER

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7777.1767 In reply to 7777.1766 
The paper also describes using two radii as inputs for mu and lambda, so more work may be done.
Connection to the semi-major and semi-minor axes of ellipse and hyperbola is also a question.
There are several papers using nodulary curves for membrane fusion, squashed bubbles, etc., but their equations did not seem to work...

- Brian
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7777.1768 In reply to 7777.1767 
The undulary curves seem to work. The values of mu and lambda are positive, but
must be very small, as per mu constraint.

- Brian

EDITED: 20 Nov 2020 by BEMFARMER

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7777.1769 In reply to 7777.1768 
The nodoid and profile are colored coral.

Using Orient Line/Line, the blue unduloid became emerald, and was connected to the Honeysuckle unduloid.




- Brian

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7777.1770 
RadiiInputMacros.zip contains two Macros, with inputs RadiusMax and RadiusMin from the symmetry axis line.
Outputs are mu and lambda. (Simple formulas from the paper.)
Nodoid Radii.nod is a front end Macro for producing Nodulary profiles.
Unduloid Radii.nod is a front end Macro for producing Undulary profiles. For minRadius = 0 a quarter arc is supposed to form, (sphere CMC), but
in actuality, one quarter of an ellipse is formed. (So there may be some error somewhere, the paper or the node.)

Place the two Macros in the Nodeeditor Macro folder. Wire in either as input to the CMC4 node. For input to either Macro,
two radius input sliders can be wired in.

The Macro menu in a nodeeditor window does NOT scroll. So space for the number of Macros is limited by the height of the canvas window.

Changing k to k*k had no effect, re elliptic integrals. The quarter ellipse profile remained the same, and did not turn into a quarter arc.

- Brian

Slider radius inputs for nodoid of 0 to 2 seem nice. Divide by zero and infinity seem to be handled OK by nodeeditor.
Note that revolve axis is parallel to the y axis, in the xy plane. Which line, and the position of the hyperbola and the roulette line is not clear.
The roulette line for the nodulary is to the right of the nodulary curve, focus length from its vertex. (?)
Which I think should be the revolve axis?

See post 1777 for node containing radii macros.

EDITED: 30 Nov 2020 by BEMFARMER

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7777.1771 
Node to produce the upper curve of a hyperbola, and its focus point.
"a" and "b" are the semi axes. The node uses exponential equations for cosh and sinh.

A tangent from an end point can be built, but there are two of them, which seems wrong.
One tangent passes through the origin, and the y intercept is Not the Conic command apex point.
The second tangent passes through the y axis a bit lower down, and using this apex point,
the MoI conic command can produce the same hyperbola curve visually.
Upon zooming way in, the MoI conic nurbs curve is slightly different, probably due to the limited
number of points used for the node program.

There is probably some formula for calculating the Conic command parameters from a and b...

The new Dimension commands are very useful for labeling the geometry.

- Brian

Corrected faulty hyperbola node. I wondered why the ends were drooping:-)
(Note that using Michael's Hyperbola script is preferable.)

EDITED: 22 Nov 2020 by BEMFARMER

Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
7777.1772 In reply to 7777.1771 
Hi Brian, here are a couple commands for making a Hyperbola and Parabola from foci points.

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7777.1773 In reply to 7777.1772 
Thank you very much Michael.
Your Hyperbola script works perfectly.

- Brian

I think I will try to roulette it along a vertex line, with tangents and cplanes, and trace focus,
but will not be able to get all the way to infinity :-)
With var pt = cplane.evaluate( x, y, z ); (Or some such) And unwrap curve...

EDITED: 21 Nov 2020 by BEMFARMER

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Message 7777.1774 deleted 25 Nov 2020 by BEMFARMER

Previous
Next
 From:  bemfarmer
7777.1775 
Post # 1766 has updated CMC6 node. CMC4 is gone. Only one person downloaded it.
Curve output added. Comments modified. Rotated curves to align with screen.
Still puzzling on several issues. Nodary and Undulary look nice, but the Sphere and Cylinder need to have the y coordinates divided by 2,
to get the proper quarter arc or line, with correct radius. So maybe Nodary and Undulary curves need the same???
For the Nodary and Undulary, the revolve axis needs to be determined. The revolve axis is the same as the roulette line, which passes through the upper
vertex of the generating hyperbola for the Nodary, and through a vertex of the ellipse for the undulary.
The relation of rmin and rmax to the hyperbola a, b, and c parameters is not complete.
"a" may be equal to (rmax - rmin). Or not?

One fact is that the point on the side of the Nodary with vertical tangent is at the distance "b" from the roulette axis, because at infinity,
the asymptote of the hyperbola is horizontal. A general property of the hyperbola is that the Focus of the hyperbola is at perpendicular
distance "b" from the asymptote.

"c" = sqrt(a*a + b+b), for the hyperbola.

- Brian

EDITED: 25 Nov 2020 by BEMFARMER

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7777.1776 
One mystery is solved. Need to divide by 2 turned out to be lack of parenthesis.
Correct factor of 1/sqrt2 became *sqrt2. (1/sqrt2 = sqrt2/2).

Second mystery, the modulus needs to be k*k. (now certain:-)

Also got rid of my negative sign. Learned a long time ago that if the professor's equations seem wrong, they are not, my thinking is wrong.
Now the undulary and nodoid line up with each other, at proper R and r, and the x-axis is the roll and revolve axis line.

Values of R and r corresponding to parameters a, b, and c for ellipse and hyperbola also solved.

Will post CMC8 later tonight, and word doc, and example node.

Still need to check if sample roulettes match the profiles.

A formula for the widths of the nodary would be nice...

- Brian

EDITED: 29 Nov 2020 by BEMFARMER


  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7777.1777 In reply to 7777.1776 
Attached is the CMC8.js node file, and the CMC8_01.nod program, for creating symmetric half of an Undulary curve, and a Nodary curve.

Also attached is the NodoidUnduloidRadii08.3dm file which demonstrates that the formulas for the two Radii "R" and "r" correspond to the parameters "a", "b", and "c" for the parent roulette curves Ellipse for the Undulary curve, and Hyperbola for the Nodary curve, as described in the Word file Parameters for Undulary and Nodary curves.
In particular, an unwrap of half of the perimeter of the ellipse corresponds to 5 decimal places with the x_length of the undulary, which is equivalent to rolling the ellipse. The ellipse is drawn with MoI ellipse command.
Also an unwrap of half of the hyperbola, and Line/Line orient of the tangent at the "end" of the hyperbola segment, with attached Focus1 and Focus2, demonstrates that after "rolling" the hyperbola, that the new location of the two foci is (nearly) on the red nodary curve. (It is not perfect, but pretty close. There must be some calculation tolerances...). In addition, the y height of the vertical tangent to the nodary curve agreed within 6 decimal points of the calculated value of parameter "b". Once the parameters are calculated and points plotted, Michael's hyperbola script draws the hyperbola.

Also, moving the mu slider to zero will generate a quarter circle, (mirror and revolves Sphere), and setting mu equal to 1/(4*lambda) generates
a line, (revolves to a cylinder). Both with the proper radius R. (But there are better ways to make spheres and cylinders.)
(Roulette of parabola to a catenary, (revolve to a catenoid), uses other equations.)

This finishes up the CMC project, except for finding a formula for the widths of the nodary curve segments.

- Brian

ps The new Dimension commands were great for labeling the .3dm drawing. Someone should do a video. I've almost stopped hitting enter after adding
text. The detailed view is helpful for screen align, and altering distance for text. It might be nice to be able to have both distance and text in the horizontal and vertical dims.

EDITED: 30 Nov 2020 by BEMFARMER


  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
7777.1778 In reply to 7777.1777 
Hi Brian, I'm glad the dims are useful! You can have both the distance and additional text show in a dimension by going to the "Details..." object properties dialog and under Annotation properties > Text put in the text you want and also include a <> (less-than and greater-than characters with no space between them). The <> will be substituted with the numeric value.

So for example if you set the dimension's text value to be "Distance = <>", it will display like this:



- Michael
Attachments:

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
7777.1779 In reply to 7777.1778 
Michael, Thankyou for the excellent Text = <> information !

BRIAN
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
7777.1780 
I have seen this incredible thing by nkallen ! I believe that is in WIp but...very promising!

EDITED: 2 Feb 2021 by PILOU

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All

 

 
Show messages:  1-20  …  1701-1720  1721-1740  1741-1760  1761-1780  1781-1800  1801-1820  1821-1840  1841-1859