Items tagged with 3d 3d Tagged Items Feed

I have produded a 3D plot where I have used the graphic's lighting->user GUI to set the light color, direction, and ambient lighting to my liking.

 

I would like to save the lighting parameters so that I can reproduce the identical lighting in other plots.  I see no way of reading off the lighting parameters from the GUI.  I tried to "lprint(myplot)" to see if it contains that information but apparently it doesn't.

So my question is: Is there a way to retrieve the lighting parameters from a 3D plot?

 

--

Rouben Rostamian

As stated, contourplot3d is not displaying contours. Even in the Maple Help examples the contours are not displayed in the help screen.

In this example:

contourplot3d(-5*x/(x^2+y^2+1), x = -3 .. 3, y = -3 .. 3, filledregions = true);

which is directly from Maple Help, the surface is plotted (with boxed axes), but no contours appear.

When I try

contourplot3d(-5*x/(x^2+y^2+1), x = -3 .. 3, y = -3 .. 3);

the plot shows nothing except boxed axes.

I've also tried

plot3d(-5*x/(x^2+y^2+1), x = -3 .. 3, y = -3 .. 3, contours=6);

and the surface shows but without countours. Furthermore, the Maple scripts that worked previously in earlier versions (showing contours via plot3d) now do not show contours in Maple 18. This occurs on both Win 7 and Win 8 laptops.

Thanks!

 

Ok guys, so i have a bunch of datapoints in 3d (x,y,z)

I'm trying to calculate an equation using maple that will express z as a function of x and y.

I've been browesing around for like 2 hours now with no hope. Help?

 

Someone asked on math.stackexchange.com about plotting x*y*z=1 and, while it's easy enough to handle it with implicitplot3d it raised the question of how to get nice constained axes in the case that the x- or y-range is much less than the z-range.

Here's what WolframAlpha gives. (Mathematica handles it straight an an plot of the explict z=1/(x*y), which is interesting although I'm more interested here in axes scaling than in discontinuous 3D plots)

Here is the result of a call to implicitplot3d with default scaling=unconstrained. The axes appear like in a cube, each of equal "length".

 

Here is the same plot, with scaling=constrained. This is not pretty, because the x- and y-range are much smalled than the z-range.

 

How can we control the axes scaling? Resizing the inlined plot window with the mouse just affects the window. The plot itself remains  rendered in a cube. Using right-click menus to rescale just makes all axes grow or shrink together.

One unattractive approach it to force a small z-view on a plot of a much larger z-range, for a piecewise or procedure that is undefined outisde a specific range.

plots:-implicitplot3d(proc(x,y,z)
                        if abs(z)>200 then undefined;
                        else x*y*z-1; end if;
                      end proc,
                      -1..1, -1..1, -200..200, view=[-1..1,-1..1,-400..400],
                      style=surfacecontour, grid=[30,30,30]);

Another approach is to scale the x and y variables, scale their ranges, and then force scaled tickmark values. Here is a rough procedure to automate such a thing. The basic idea is for it to accept the same kinds of arguments are implicitplot3d does, with two extra options for scaling the axis x-relative-to-z, and axis y-relative-to-z.

implplot3d:=proc( expr,
                  rng1::name=range(numeric),
                  rng2::name=range(numeric),
                  rng3::name=range(numeric),
                  {scalex::numeric:=1, scaley::numeric:=1} )
   local d1, d2, dz, n1, n2, r1, r2, rngs, scx, scy;
   uses plotfn=plots:-implicitplot3d;
   (n1,n2) := lhs(rng1), lhs(rng2);
   dz := rhs(rhs(rng3))-lhs(rhs(rng3));
   (scx,scy) := scalex*dz/(rhs(rhs(rng1))-lhs(rhs(rng1))),
                scaley*dz/(rhs(rhs(rng2))-lhs(rhs(rng2)));
   (r1,r2) := map(`*`,rhs(rng1),scx), map(`*`,rhs(rng2),scy);
   (d1,d2) := rhs(r1)-lhs(r1), rhs(r1)-lhs(r1);
   plotfn( subs([n1=n1/scx, n2=n2/scy], expr),
           n1=r1, n2=r2, rng3, _rest[],
           ':-axis[1]'=[':-tickmarks'=[seq(i=evalf[3](i/scx),i=r1,d1/4)]],
           ':-axis[2]'=[':-tickmarks'=[seq(i=evalf[3](i/scy),i=r2,d2/4)]],
           ':-scaling'=':-constrained');
end proc:

The above could be better. It could also detect user-supplied custom x- or y-tickmarks and then scale those instead of forming new ones.

Here is an example of using it,

implplot3d( x*y*z=1, x=-1..1, y=-1..1, z=-200..200, grid=[30,30,30],
            style=surfacecontour, shading=xy, orientation=[-60,60,0],
            scalex=1.618, scaley=1.618 );

Here is another example

implplot3d( x*y*z=1, x=-5..13, y=-11..5, z=-200..200, grid=[30,30,30],
            style=surfacecontour, orientation=[-50,55,0],
            scaley=0.5 );

Ideally I would like to see the GUI handle all this, with say (two or three) additional (scalar) axis scaling properties in a PLOT3D structure. Barring that, one might ask whether a post-processing routine could use plots:-transform (or friend) and also force the tickmarks. For that I believe that picking off the effective x-, y-, and z-ranges is needed. That's not too hard for the result of a single call to the plot3d command. Where it could get difficult is in handling the result of plots:-display when fed a mix of several spacecurves, 3D implicit plots, and surfaces.

Have I overlooked something much easier?

acer

Does anyone have JavaViewLib running on Maple 18?  Could you help me out?  I can't get it running and I really need a way to export some 3d plots to a web page where a colleague can view them (rotate and such).

Thanks, Chad.

Hello everyone,

 

how exactly do i 3-d plot some data that i have to back-transform first. in 2-d it is so easy. why isnt it in 3d? all i end up with is an all black diagram

transformIT.mw

please see the file attached

Grateful for some hints

Goon

 

I have a differential equation system x'(t)=f1(k,t)*x(t)+f2(k,t)*y(t), x'(t)=g1(k,t)*x(t)+g2(k,t)*y(t) with initial condition x(0)=1 and y(0)=1. Here k is a parameter, f1, f2,g1, g2 are certain functions of k and t. I used dsolve and set k to be a parameter to solve the system numerically which gives you a procedure output. If I fixed k to be a specific numerical number, then I can use odeplot to plot x(t) VS t.

Now I set a range for k, say k=0..10. And I want to plot x VS (t,k) which is a 3D graph. How can I do this?

Hi,

I have a file with arbitrary points which I want to connect with a surface. I have seen similar problems on this site but I can't fix my problem with the answers that are given, mainly because my points are just plain vectors. Can anybody help me? 
These are my points/vectors:

v1 := `<,>`(15, 6, 14.89);
v2 := `<,>`(15, 8, 14.72);
v3 := `<,>`(15, 10, 14.79);
v4 := `<,>`(15, 12, 14.95);
v5 := `<,>`(15, 14, 15.17);
v6 := `<,>`(15, 16, 15.43);
w1 := `<,>`(15/2, 4, 9.78);
w2 := `<,>`(15/2, 6, 9.95);
w3 := `<,>`(15/2, 8, 9.85); 
x1 := `<,>`(15*(1/3), 4, 8.71);
x2 := `<,>`(15*(1/3), 6, 8.44);
y1 := `<,>`(15/4, 4, 8.31); 

I can only plot the different points with 

with(plots);
pointplot3d({v1, v2, v3, v4, v5, v6, w1, w2, w3, x1, x2, y1}, scaling = CONSTRAINED, symbolsize = 20, color = red, axes = normal, labels = ["L/h", "n", "kg/m"]);

I hope someone can help me!

So if you are given a 3x3 matrix i was just wondering how to use plot3d and plot the 3 column vectors given by it?  Thanks.

Several years ago, I used to plot, in Maple 7 I think, 3D scalar functions by using procedures to create a 3D mesh and populate the data points before I could use plot3d.

I wonder if there is a more convenient (least coding) way to do it today? Consider for example f(x,y,z) = x^2 + y^2+z^2

A way to visualize a number of concentric isosurfaces of f is to loop with (is there a tag to write this in code block?): 

 

for i to 10 do iso[i] := implicitplot3d( f = i, x = -10 .. 10, y = -10 .. 10, z = -10 .. 10) end do

display(seq(iso[j], j = 1 .. 10))

 

Of course, visualizing the output is another issue.  I wish for an app to explore 3D data like Paraview. It does not have to be as sophisticated, but to display standard elements like isosurfaces and arbitrary cutting plane views would suffice.

If you know a package/app/procedure in Maple of this nature, please share it here. Thank you

 

I have just begun thinking of trying to make some mathematically defined objects using a 3d printer. I would be happy to hear from anyone who has done this using Maple to prepare input. Pointers for a novice in 3d printing would be appreciated.  I have access to a MakerBot Replicator 2. But the people who have it have only used it to scan objects and make 3d copies of them. 

---Edwin

Hi, guys and happy eastern to all! :)

I have a realy big problem. I have to do beziercurves in 3d plots.

I can´t plot it in 3d, something wrong with the plot (complex). Can anybody pls help me?! It´s very important to me, thanks! :)

With the package VectorCalculus we can study the speed and acceleration to their respective components. Considering the visualizaccion and algebraic calculations and to check with their respective commands. Both 2D and 3D.

 

Velocidad-Aceleració.mw     (in spanish)

 

Lenin Araujo Castillo

Physics Pure

Computer Science

In geom3d. I want to find the vertices A(x1,y1,z1), B(x2,y2,z2), where x1, y1, z1, x2, y2, z2 are integer numbers so that the triangle OAB  (O is origin) and perimeter and area are integer numbers. I tried

> resrart:

N:=5:

L:=[]:

for x1 from -N to N do

for y1 from x1 to N do

for z1 from y1 to N do

for x2 from -N to N do

for y2 from -N to N do

for z2 from -N to N do

a:=sqrt(x1^2+y1^2+z1^2):b:=sqrt(x2^2+y2^2+z2^2):c:=sqrt((x2-x1)^2 + (y2-y1)^2 + (z2-z1)^2):

p:=(a+b+c)/2:

S:=sqrt(p*(p-a)*(p-b)*(p-c)):

if type(2*p, integer) and type(S, posint)

then L:=[op(L), [[0, 0, 0], [x1, y1, z1], [x2, y2, z2]]]: fi:

od: od: od: od: od: od:

nops(L);

But my computer runs too long. I can not receive the result. How to get the answer?

If I the length of the side are 6, 25, 29. I tried 

DirectSearch:-SolveEquations([(x2-x1)^2+(y2-y1)^2+(z2-z1)^2 = 6^2, (x3-x2)^2+(y3-y2)^2+(z3-z2)^2 = 25^2,  (x3-x1)^2+(y3-y1)^2+(z3-z1)^2 = 29^2], {abs(x1) <= 30, abs(x2) <= 20, abs(x3) <= 20, abs(y1) <= 20, abs(y2) <= 20, abs(y3) <= 20, abs(z1) <= 20,abs(z2) <= 20, abs(z3) <= 20}, assume = integer, AllSolutions, solutions = 1);

 

 

In geometry 3D, I have four vertices A(x1,y1,z1), B(x2,y2,z2), C(x3,y3,z3) and D(x4,y4,z4) of a tetrahedron. How to check a point P(x0,y0,z0) inside, outside or lie on  tetrahedron ABCD?

1 2 3 4 Page 1 of 4