Carl Love

Carl Love

28110 Reputation

25 Badges

13 years, 117 days
Himself
Wayland, Massachusetts, United States
My name was formerly Carl Devore.

MaplePrimes Activity


These are replies submitted by Carl Love

@dingtianlidi Hmm, I see that you're right. I couldn't do anything to get colorscheme= ["xyzcoloring", ...to work with tubeplot. But it won't give an error message either! Unfortunately, that misled me to believe that my previous plot was correct.

Here's an alternative which I'm sure works (as can be seen in the plot below). We use the old-style option color= COLOR(HUE, C(t)) where C(t) is an expression in the parameter t scaled to 0..1.
 

restart:

S1:= x*y+y*z+x*z = 0:
S2:= x+y+z = 5:

E:= eliminate({S1,S2}, z);

[{z = -x-y+5}, {-x^2-x*y-y^2+5*x+5*y}]

#I'll call the 2nd part above the "residual". The only "trick" to
#parameterizing is to make two-variable substitutions for (x,y) into the
#residual that
#can be uniquely solved for one of those two variables. Polar coordinates is a
#standard such trick for circles and ellipses.
Polar:= {x= r*cos(t), y= r*sin(t)}:

R:= solve(eval(E[2], Polar), r);

{r = 0}, {r = 5*(cos(t)+sin(t))/(cos(t)^2+cos(t)*sin(t)+sin(t)^2)}

#We can discard the trivial solution. The final paramterization is

Pt:= combine(eval[recurse]([x,y,z], Polar union E[1] union R[2]));

[5*(cos(2*t)+1+sin(2*t))/(2+sin(2*t)), -5*(-sin(2*t)-1+cos(2*t))/(2+sin(2*t)), -5*sin(2*t)/(2+sin(2*t))]

#Express coloring function in terms of the paramter (t):
C:= eval(x*y*z, [x,y,z]=~ Pt)
:

#We need to put the colors on a 0..1 scale:
(m,M):= (minimize,maximize)(C, t= -Pi..Pi);
C:= (C-m)/(M-m):

-500/27, 0

plots:-tubeplot(
    Pt, t= -Pi..Pi, radius= .2, numpoints= 300,
    color= COLOR(HUE, C),
    style= surface, scaling= constrained
);

 


 

Download ColoredTubeplot.mw

Note that x+y+z is constant 5 on the circle, so that doesn't make a good coloring function.

The radius option to tubeplot refers to the cross-sectional radius of the tube, not the radius of the overall circle.

@Carl Love Even without the wireframe, the use of cylindrical coordinates for the surface eliminates the gap between the upper and lower surfaces, even at modest resolution (I used 53x53 above).

There must be an underlying implementation of Maple supporting this Mobius. To what extent does the Mobius user have access to that? It would be easy to write a quaternion package for Maple. Would you be able to install and access it?

@zphaze I formally reported the bug.

It's not a new feature. Loops have always been that way. 

@ActiveUser All parts of Maple"s looping command that come before the word do are optional and always have been. 

@Scot Gould While it is true that the originally posted worksheet is missing a division operator in the parameters section of its Explore command, this is not the cause of the errors shown,. If you compare your worksheet with the OP's, you'll see that the latter has no boundary markers separating the regions of expository text from the executable code. (These markers can be seen in the extreme left margin of almost any worksheet.) I don't know whether this is the OP's doing, or whether the worksheet got mangled by MapleCloud.

And this is the same plot with the only difference being that I turned off transparency:

Here is the plot done in cylindrical coordinates. By using this, it's possible to get just the radial lines of the grid, plus a border. In my opinion, the syntax makes it much easier to color a grid (aka wireframe) in a plot3d than it is to color a spacecurve. In the plot below, the radial lines are colored by the imaginary part.

restart
:
f:= (r,theta)-> r*cos(theta/2): #Re(sqrt(z))  
Square:= piecewise(
    theta < -3*Pi/4, -sec(theta), #x = -1
    theta < -Pi/4,   -csc(theta), #y = -1
    theta < Pi/4,     sec(theta), #x =  1
    theta < 3*Pi/4,   csc(theta), #y =  1
                     -sec(theta)  #x = -1
):
plots:-display(
    plot3d(
        (common:= 
           [seq([r, theta, k*f(r,theta)], k= [-1,1])], 
           r= 0..Square, theta= -Pi..Pi, coords= cylindrical
        ), 
        grid= [53$2], style= surface, glossiness= 1, 
        transparency= .002,    #close to the min value that does anything
        colorscheme= [         #adaptation of your original coloring:
            "xyzcoloring", 
            [(x,y,z)-> y^2, (x,y,z)-> abs(x*y), (x,y,z)-> x^2]
        ]
    ), 
    plot3d(
        common,
        grid= [2,23],                     #Shows only the radial lines. 
        style= wireframe, thickness= 3, 
        color= abs(r*sin(theta/2))             #abs(Im(sqrt(z)))  
    ),
    lightmodel= light2, orientation= [55,75,0], projection= .85, axes= frame,
    labels= ['x', 'y', Re(w)]
);

@Stretto There are 31 predefined 3d coordinate systems, and you can also define your own. These are documented on help page ?coords. Of course, the most important are rectangular (default), cylindrical, and spherical. You can use them in a 3d plot by using the coords option. I'll post an example (your Riemann surface in cylindrical coordinates) as a followup to my Answer.

Note that Acer used cylindrical coordinates by manually doing the appropriate coordinate transformation and plotting in default rectangular coordinates. But by explicitly using coords= cylindrical, it's possible to get just the radial lines plus a border.

@Kitonum Maple 12 doesn't have the key option to sort.

@panke As I pointed out above, what you've written is not an equation; it's an assignment. If you want an equation, use =, and there'll be no error message.

@panke Yeah, I understand perfectly what the cause of your error is. But the problem is that what you're trying to do makes no sense mathematically. 

@ismonder Thanks. Hopefully this will help someone figure out what the problem is. For the sake of completeness, you should probably upload (as an attached file rather than as a screen shot) whatever part of the worksheet that you were able to save.

Also (and this may not matter), you still haven't followed the simple instructions that I gave. AFTER the command or commands that don't work, please put a command that does work, like 2+3. I repeat: This is just to obtain diagnostic information. I don't need to see more commands that don't work.

When you say "I press enter, and nothing happens", do you mean 

  1. the cursor doesn't move at all, or
  2. the cursor moves to the next line (where on the next line?), or
  3. you get a new command prompt, and the cursor is next to it, or
  4. something else?

@ismonder Can you please post a screenshot of these things, in this order, all on one screen:

  1. A command that DOES work, such as 2+3;
  2. Its output; FOLLOWED BY,
  3. A command that doesn't work, such as that plot command;
  4. (This one may not be possible) Another command that DOES work;
  5. Its output.

If 4 & 5 are not possible, then what happens if you press Control-J? Do you get a new command prompt? If so, try entering another command that DOES work at the new prompt.

This is only to obtain diagnostic information that may help in solving your problem. I'm not saying that any of the above will, by itself, solve your problem.

First 221 222 223 224 225 226 227 Last Page 223 of 710