MoI discussion forum
MoI discussion forum

Full Version: [script] FxGraph - 2D/3D Function plotter

Show messages:  1-15  16-35  36-55  56-75  76-91

From: Michael Gibson
6 Sep 2014   [#16] In reply to [#15]
Very cool Max!

- Michael
From: wastzzz
7 Sep 2014   [#17] In reply to [#15]
Thank you!
From: Max Smirnov (SMIRNOV)
7 Sep 2014   [#18]
Version 1.0
Changes since 0.6:
[fixed] some bugs
[added] Command line parameters support. Click X(u,v), Y(u,v) or Z(u,v) label to copy values to the clipboard.

Examples:
_FxGraph3D (u);(v);rnd;-10;10;-10;10;10;15;;;;U
_FxGraph3D u*a+rnd-0.5;v*b+rnd-0.5;rnd*c-c/2;-10;10;-10;10;50;50;2;2;40;P
_FxGraph3D 2*(1-exp(u/(6*pi)))*cos(u)*cos(v/2)*cos(v/2);2*(-1+exp(u/(6*pi)))*sin(u)*cos(v/2)*cos(v/2);1-exp(u/(3*pi))-sin(v)+exp(u/(6*pi))*sin(v);0;20;0;6.283185307179586;50;50;;;;V
_FxGraph3D (2+v*sin(u))*sin(2*pi*v);v*cos(u);(2+v*sin(u))*cos(2*pi*v)+2*v-v;0;3.14;0;1.3;50;50;;;;V
_FxGraph3D sin(u);cos(u);u*u/300;0;60;0;1.3;100;0;;;;V

Michael, Thank you!
From: jotero (TOROLF)
7 Sep 2014   [#19]
Hello all :)

It's nice and what do do with the curves?

X():cos(2*u)*cos(v) + 1.0 *cos(u)
Y():sin(v)
Z():-sin(2*u)*cos(v) + 1.0*sin(u)

[u]:0, 2*pi
[v]:0, 2*pi

And how do I get now to my mathematical NURBS model...?

http://imaginary.org/gallery/k3dsurf

Cu
Torolf
From: Frenchy Pilou (PILOU)
7 Sep 2014   [#20]
Cool!
French version ; ) http://moiscript.weebly.com/fx-graph-3d.html


From: bemfarmer
7 Sep 2014   [#21]
Very nice script!

Fermat Spiral:
_FxGraph3D a*c*sqrt(v)*cos(v);b*c*sqrt(v)*sin(v);0;0;1;0;6.283185307179586;0;50;1;1;1;UV

This can be pasted to the command window in Moi.
1. Highlight and CTRL-C the entire Fermat Spiral equation line above, _FxGraph3D...;UV
2. In Moi, press TAB key, and CTRL-V paste, then press Return. Voila

The a, b, and c values will scale the curve.
A negative c will rotate the curve.
A negative a and positive b will Mirror the curve.
a, b, and c are not really needed, as Moi can do these actions already.

- Brian

I just did a Fermat Spiral script, but can now delete it :-)
Or add some bells and whistles.


Image Attachments:
FermatYinYang.PNG 


From: Max Smirnov (SMIRNOV)
7 Sep 2014   [#22]
Sphere
_FxGraph3D cos(u)*cos(v)*a;sin(u)*cos(v)*b;sin(v)*c;0;6.283185307179586;-1.5707963267948966;1.5707963267948966;50;50;1;1;1;V

Torus
_FxGraph3D cos(u)*(cos(v)+a/b)*b;sin(u)*(cos(v)+a/b)*b;sin(v)*b;-3.141592653589793;3.141592653589793;-3.141592653589793;3.141592653589793;50;50;20;10;;UV

Spiral
_FxGraph3D cos(u/c)*(cos(v)+a/b)*b;sin(u/c)*(cos(v)+a/b)*b;sin(v)*b+u;0;50;0;6.283185307179586;100;20;10;3;2;UV

Conic Spiral
_FxGraph3D cos(u)*(u/(a*pi)*cos(v)+b)*c;sin(u)*(u/(a*pi)*cos(v)+b)*c;u*sin(v)/(a*pi)*c;0;9.42477796076938;0;6.283185307179586;100;20;1.5;5;1;U

Knot
_FxGraph3D cos(u)*cos(v)+c*cos(u)*(b+sin(u*a)/2);sin(u)*cos(v)+c*sin(u)*(b+sin(a*u)/2);sin(v)+2*cos(a*u);0;18.84955592153876;0;6.283185307179586;300;10;1.666666;2;3;UV

Dini's Surface
_FxGraph3D cos(u)*sin(v);sin(u)*sin(v);cos(v)+log(tan(v/2))+a*u;0;12.566370614359172;0.1;2;300;10;0.3;;;U

Enneper surface
_FxGraph3D u*cos(v)-pow(u,2*a-1)/(2*a-1)*cos((2*a-1)*v);-u*sin(v)-pow(u,2*a-1)/(2*a-1)*sin((2*a-1)*v);2/a*pow(u,a)*cos(a*v);0;1.2;0;6.283185307179586;50;27;4;;;UV
From: bemfarmer
7 Sep 2014   [#23] In reply to [#22]
Maybe someone could come up with a repository for these formulas,
an easy place to copy them from, ... in Moi , or someplace like the object library?

- Brian
From: Max Smirnov (SMIRNOV)
7 Sep 2014   [#24]
Version 1.1beta
Changes since 1.0:
[added] Surface modes (beta): SrfV and SrfU. Use it carefully. Sometimes it can hang MoI for up to a few minutes.


>>Maybe someone could come up with a repository for these formulas, an easy place to copy them from, ... in Moi , or someplace like the object library?
Hi Brian!
It's good idea. I'll think about it.
From: bemfarmer
7 Sep 2014   [#25]
Golden Logarithmic Spiral, also known as equiangular spiral, and Spira Mirabilis.
For growth factor b = 0.306349 (approx.), the Golden Spiral is formed, for angles in radians.
a is a scale factor.
c is the number of "coils."
_FxGraph3D a*cos(c*v)*exp(b*c*v);a*sin(c*v)*exp(b*c*v);0;0;1;0;6.283185307179586;0;50;1;0.306349;2;UV

- Brian
From: Frenchy Pilou (PILOU)
7 Sep 2014   [#26]
Excellent!
The trick is run the Script then just take 2 curves from the result for make a Loft or a Sweep! ;)


From: bemfarmer
7 Sep 2014   [#27]
Heart (half)
(c of 2 makes a full heart, but with two hairpin curve regions.)
_FxGraph3D a*16*sin(c*v)*sin(c*v)*sin(c*v);a*(13*cos(c*v)-5*cos(2*c*v)-2*cos(3*c*v)-cos(4*c*v));0;0;1;0;3.141592653589793;0;50;1;1;1;UV
From: Frenchy Pilou (PILOU)
8 Sep 2014   [#28]
With the last beta "Cancel" don't works with these parameters and reasonnable time!


From: bemfarmer
8 Sep 2014   [#29] In reply to [#28]
I think it is a tradeoff due to the speed of the htm code?

- Brian
From: Max Smirnov (SMIRNOV)
17 Apr 2016   [#30]
While writing Math nodes for my nodeedit project, I found one significant bug in the FxGraph/3D code. The script incorrectly processes a square brackets and "rnd" command in some cases.
Updated scripts:
http://moi.maxsm.net/media/files/FxGraph3D.v.1.1.2016.04.17.zip
http://moi.maxsm.net/media/files/FxGraph.v.1.2e.2016.04.17.zip
From: bemfarmer
22 Jul 2017   [#31]
While exploring Scherk2 minimal surface, and hyperbola, these shapes came up:

sinhLeaf:
_FxGraph3D u;v;((exp(u) - exp((-1)*u))/2 + (exp(v) - exp((-1)*v))/2);-3.14159;3.14159;-3.14159;3.14159;15;15;0;0;0;UV

sinhcoshScoop:
_FxGraph3D u;v;((exp(u) - exp((-1)*u))/2 + (exp(v) + exp((-1)*v))/2);-3.14159;3.14159;-3.14159;3.14159;15;15;;;;UV

coshBag:
_FxGraph3D u;v;((exp(u) + exp((-1)*u))/2 + (exp(v) + exp((-1)*v))/2);-3.14159;3.14159;-3.14159;3.14159;15;15;;;;UV

The scripts can be stored in a notepad++ text file.

To repeat how to view in MoI, with Max's _FXGraph3D script already installed, highlight one entire line, press Ctrl+C.
Open MoI, press TAB, press Ctrl+V, press Enter.
Network can be used to make a quick surface.

- Brian
From: TOM (SIRTOM)
23 Jul 2017   [#32] In reply to [#31]
Beautyful - did not know about that cpoy+paste function !
From: bemfarmer
23 Jul 2017   [#33]
This script is called BowTie.
_FxGraph3D v*sin(u);v*cos(u);a * asin(((exp(u*sin(v)) - exp(-u*sin(v)))/2) * ((exp(u*cos(v)) + exp(-u*cos(v)))/2));-0.8;0.8;-3.14159;3.14159;15;15;1;;;UV

Selecting just the U iso curves, allows trim with a point at the origin.
Each bow will then network at the 15 curve density.
Each surface can be extruded slightly and the fillet applied.

- Brian
From: Mike (MGG942)
24 Jul 2017   [#34] In reply to [#33]
Nice - except I've not been able to make a surface.

Would you mind splitting this: "Selecting just the U iso curves, allows trim with a point at the origin." into a number of discrete steps?

My particular confusion is what to trim with what, and what to delete (or not).

Mike.
From: bemfarmer
24 Jul 2017   [#35] In reply to [#34]
Hi Mike,
Network does not always work on such complete structures, but may work with portions.
(Having a lot more U and V curves may prevent Network from working.)

After creating the UV curves,
1. Place a point at the origin. This is not essential, but helps locating the origin.
2. Select only the curves passing through the origin.
These are the U curves, and could have been identified by previously running a separate U mode. (It is not essential to run a separate U mode.)
3. Run Trim command
4. Press "add trim points"
5. Select origin point as place to put the added trim point.
6. Press Done. (Do not press "remove curves" button.)
7. Press Done again. The two "lobes" are now separate.
8. Select both U and V curves for one entire lobe.
9. Press Network, which creates one lobe surface in half a second or so.
(Network does not work if both lobes UV lines are selected at the same time.)
10. The second lobe can also be Networked separately.

- Brian

Show messages:  1-15  16-35  36-55  56-75  76-91