Here's what I got whaen I ran Jon's code: a=:3[b=:3[c=:3
X=:4 :0 a*(cos x)*cos y ) Y=:4 :0 b*(cos x)*sin y ) Z=:3 :0 c*(sin y) ) draw=:3 :0 angles=: steps _1p1 1p1 100 uangles =: steps _1.5708 1.5708 100 x=. uangles X"0 _ angles y=. uangles Y"0 _ angles z=. Z uangles 'surface' plot x;y;z ) draw'' |value error: steps | angles=: steps _3.14159 3.14159 100 Skip Cave Cave Consulting LLC On Fri, Mar 6, 2015 at 8:56 PM, Jon Hough <[email protected]> wrote: > > I butchered Raul's script slightly. But the resulting graph is still > weird. Not sure if it's an improvement. > > > a=:3[b=:3[c=:3 > > > > X=:4 :0 > > > > a*(cos x)*cos y > > > > ) > > > > > > > Y=:4 :0 > > > > b*(cos x)*sin y > > > > ) > > > > > > > Z=:3 :0 > > > > c*(sin y) > > > > ) > > > > > > > draw=:3 :0 > > > > angles=: steps _1p1 1p1 100 > > > > uangles =: steps _1.5708 1.5708 100 > > > > x=. uangles X"0 _ angles > > > > y=. uangles Y"0 _ angles > > > > > > z=. Z uangles > > > > 'surface' plot x;y;z > > > > ) > > > > > draw'' > > > From: [email protected] > > To: [email protected] > > Date: Sat, 7 Mar 2015 02:46:35 +0000 > > Subject: Re: [Jprogramming] Plotting a 3D Ellipse > > > > It seems you are using [-pi,pi] as the range of all your angles.I think > you need to use [-pi/2,pi/2] as the range for the u argument (in the > wikipedia page). > > > > > From: [email protected] > > > Date: Fri, 6 Mar 2015 21:35:37 -0500 > > > To: [email protected] > > > Subject: Re: [Jprogramming] Plotting a 3D Ellipse > > > > > > Hmm... > > > > > > I notice that load'graph' no longer provides the steps verb mentioned > > > in http://www.jsoftware.com/books/pdf/expmath.pdf > > > > > > So here's a workalike: > > > steps=: 3 : 'a+(w)*(i.n+1)%n[w=.z-a[''a z n''=.y' > > > > > > and that gives us an example of a surface plot. > > > > > > Next, we need a parametric representation of the ellipse, and > > > http://en.wikipedia.org/wiki/Ellipsoid#Parameterization looks like a > > > plausible approach there. > > > > > > Using that, and http://www.jsoftware.com/help/jforc/graphics.htm as a > > > starting point, it seems to me that I ought to be able to draw an > > > ellipse like this: > > > > > > a=:3[b=:4[c=:5 > > > > > > X=:4 :0~ > > > a*(cos x)*/cos y > > > ) > > > > > > Y=:4 :0~ > > > b*(cos x)*/sin y > > > ) > > > > > > Z=:4 :0~ > > > c*(sin x)*/1: y > > > ) > > > > > > draw=:3 :0 > > > angles=: steps _1p1 1p1 100 > > > x=. X angles > > > y=. Y angles > > > z=. Z angles > > > 'surface' plot x;y;z > > > ) > > > > > > draw'' > > > > > > Sadly, that's not an ellipse. > > > > > > But I do not have enough familiarity with plot to know whether I've > > > screwed up my math or if there's a defect in plot -- I don't know how > > > to isolate the problem. > > > > > > That said, a quick test with a 3d model of a cube: > > > > > > 'surface' plot ;/|:#:i.8 > > > |NaN error: ncile > > > > > > ...suggests that plot isn't really designed to represent 3d solids. > > > > > > Still, that does not eliminate any potential errors on my part. > > > > > > On the other hand, maybe the right approach would be to use jhs and > > > generate a distance field renderer along the lines of what you see at > > > shadertoy.com. > > > > > > I'll have to think a bit to see if I can pull off something like that. > > > (I think that that would only work for people who have adequate > > > graphics hardware support. But I think you have a suitable graphics > > > card?) > > > > > > Thanks, > > > > > > -- > > > Raul > > > > > > > > > On Fri, Mar 6, 2015 at 7:10 PM, Skip Cave <[email protected]> > wrote: > > > > I want to plot a 3D ellipse (ellipsoid) and then be able to change > the > > > > lengths of the three axes. The equation of an ellipse with axis > lengths of > > > > a, b, & c is: > > > > > > > > ((x^2)%(a^2)) + ((y^2)%(b^2)) + ((z^2)%(c^2)) = 1 > > > > > > > > How can I arrange this so it can be plotted in a 3-D plot in J, and > then be > > > > able to experiment with the lengths of the axes? > > > > > > > > Skip > > > > > > > > Skip Cave > > > > Cave Consulting LLC > > > > > ---------------------------------------------------------------------- > > > > For information about J forums see > http://www.jsoftware.com/forums.htm > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
