## To obtain data points from implicitplot3d...

Dear All,

I am plotting the following function using implicitplot command.:

plots[implicitplot3d]((17.31626331*M^3-(4*(z[1]-z[2])^2*M^2-1.171300684*(z[1]+z[2])^2)*(1.082266457-2*M)*(1.082266457-3*M))^2 = 4.598621420*(z[1]+z[2])^2*M*(1.082266457-2*M)^3*(4*(z[1]-z[2])^2*M^2-1.171300684*(z[1]+z[2])^2), M = 0 .. 1, z[1] = 0 .. 10, z[2] = -10 .. 0);

How can I extract data points from the plot obtained

## Mathematica vs Maple...

Inspired by the theme
http://www.mapleprimes.com/questions/219995-Finding-A-Convinient-Parametrization-Of-Surfaces
Examples in the Mathematica did Alexander Bannikov.
It is equidistant radius 0.1 to the surface

(x1 ^ 2 + x2 ^ 2-0.4) ^ 2 + (x3 + sin (x1 * x2 + x3)) ^ 4-0.1 = 0;

and an example of parameterization the same surface

https://vk.com/doc7819263_439432143?hash=36cf31d52c97e2e373&dl=7e4fa17a771dffb331

As I have understood from the words of Alexander Bannikov, parameterization was performed using the functions: RegionFunction, ContourPlot3D, ClippingPlanes.

It turns out that Maple functions inferior?

## implicitplot3d nor working...

I have code
with(plots);

implicitplot3d((r*sin(theta)*cos(phi))^2+(r*sin(theta)*sin(phi))^2+(r*cos(theta))^2=36,r=-3..3, phi=0..2*Pi,theta=0..Pi,coords=spherical);

How can I fix the code to display the picture

## Empty 3-d plot with implicitplot3d...

Trying to plot the function 7*x^2+22*xy+7*y^2+14*xz*sqrt(3)+14*yz*sqrt(3)-5*z^2 = 180, I tried using implicitplot3d to plot it, with ranges I'm quite certain should contain the surface but for whatever reason all I get is a blank plot with no graphics. Here's my input:

with(plots);
[animate, animate3d, animatecurve, arrow, changecoords,

complexplot, complexplot3d, conformal, conformal3d,

contourplot, contourplot3d, coordplot, coordplot3d,

densityplot, display, dualaxisplot, fieldplot, fieldplot3d,

interactive, interactiveparams, intersectplot, listcontplot,

listcontplot3d, listdensityplot, listplot, listplot3d,

loglogplot, logplot, matrixplot, multiple, odeplot, pareto,

plotcompare, pointplot, pointplot3d, polarplot, polygonplot,

polygonplot3d, polyhedra_supported, polyhedraplot, rootlocus,

semilogplot, setcolors, setoptions, setoptions3d, spacecurve,

sparsematrixplot, surfdata, textplot, textplot3d, tubeplot]
implicitplot3d(7*x^2+22*xy+7*y^2+14*xz*sqrt(3)+14*yz*sqrt(3)-5*z^2 = 180, x = -50 .. 50, y = -50 .. 50, z = -50 .. 50, axes = normal);

Not sure what I'm doing wrong exactly.

## Using implicitplot 3D with proc()...

Hello everyone,

I have an issue that I don't know how to solve.
I would like to plot a part of a surface that is enclosed by another surface. I wrote a proc() function with an if statement and when the statement is statisfienied I returned desired function. The roblem is that if statement gets ploted as well..

Here is my proc()

yield := proc (sigma__x, sigma__y, tau__xy, sigma__cx, sigma__cy, f__45, f__cx, f__cy, tau__u, f__tx, f__ty, alpha)

if eval(evalf(f__r(sigma__x, sigma__y, tau__xy, f__tx, f__ty, alpha)) < 0) then

return f__h(sigma__x, sigma__y, tau__xy, sigma__cx, sigma__cy, f__45, f__cx, f__cy, tau__u)

else 9999999

end if

end proc;

Here is my plot request:

Explore(implicitplot3d('yield(sigma__x, sigma__y, tau__xy, sigma__cx, sigma__cy, f__45, f__cx, f__cy, tau__u, f__tx, f__ty, alpha)' = 0, sigma__x = -10 .. 10, sigma__y = -10 .. 10, tau__xy = 0 .. 10, style = surfacecontour, numpoints = 100000, axes = normal), parameters = [f__cx = 0.1e-3 .. 10, f__cy = 0.1e-3 .. 10, f__45 = 0.1e-3 .. 10, sigma__cx = 0.1e-3 .. 10, sigma__cy = 0.1e-3 .. 10, tau__u = 0.1e-3 .. 10, f__tx = 0.1e-3 .. 10, f__ty = 0.1e-3 .. 10, alpha = 0.1e-3 .. 10]

and this is what i get:

The grainy surface should not be there. If it's not possible to remove it, it would be alright that surface would be smooth. Any ideas?

## Why doesn't implicitplot3d work?...

with(plots);

implicitplot3d((x+y+z)^2=0, x=-100..100,y=-100..100,z=-100..100)

can be plot, and only show me an empty box.

and i get the same empty box when i reduce the interval.

for example :

implicitplot3d((x+y+z)^2=0, x=-5..5,y=-5..5,z=-5..5)

and

implicitplot3d((x+y+z)^2=0, x=-0.1..0.1,y=-0.1..0.1,z=-0.1..0.1)

thanks for reading this question, and i hope i get an answer.

## The factor option for implicitplot3d?...

For implicitplot of say (cos(\theta))^2, I had to use 'factor' in the options for the plot so that it considers cos(theta) also while plotting. But I couldn't do the same in implicitplot3d. How can I achieve this plotting of all factors of a function for implicitplot3d?

## Problem with implicitplot3d...

Hi, I have defined two functions:

ex1 := (x,t,z) -> -1.132*10^(11)* exp(9.9*10^(6)*x)*exp(sqrt(-1)*(1.95*10^6*z-2.98*10^15*t))

ex2 := (x,t,z) -> -2.82*10^(12)* exp(2*10^(6)*sqrt(-1)*x)*exp(sqrt(-1)*(1.95e*10^(6)*z-2.98*10^(15)*t));

And then tried the command:

implicitplot3d( ex1, x = -10..0, t = 0..10, z = 0..10, axes = boxed, style = patchcontour, scaling = constrained, shading =z);

But the boxes are entirely blank! What is the problem here?? It should be some kind of sine curve

## Implicit plot in 3d...

Hello, I have the system of equations in many vars as below, I want to make an implicit plot in Maple with the projection on 3 vars, for example, in this case (x,y,t1). The range is x[-10,10], y[-10,10], t1[-Pi,Pi] and the rest of the vars are [-Pi,Pi]. Does anyone know how to do it? We have also the inequalities in the system.

f1:= cos(t1)+1.35*cos(p1)-x;

f2:= sin(t1)+1.35*sin(p1)-y;

f3:= cos(t2)+1.35*cos(p2)-x +1.15;

f4:= sin(t2)+1.35*sin(p2)-y;

f5:= cos(t3)+1.35*cos(p3)-x+0.575;

f6:= sin(t3)+1.35*sin(p3)-y +0.995;

f7:= cos(t1)*cos(t2)*cos(t3)*sin(p1)*sin(p2)*sin(p3)-cos(t1)*cos(t2)*sin(t3)*sin(p1)*sin(p2)*cos(p3)-cos(t1)*sin(t2)*cos(t3)*sin(p1)*cos(p2)*sin(p3)+cos(t1)*sin(t2)*sin(t3)*sin(p1)*cos(p2)*cos(p3)-sin(t1)*cos(t2)*cos(t3)*cos(p1)*sin(p2)*sin(p3)+sin(t1)*cos(t2)*sin(t3)*cos(p1)*sin(p2)*cos(p3)+sin(t1)*sin(t2)*cos(t3)*cos(p1)*cos(p2)*sin(p3)-sin(t1)*sin(t2)*sin(t3)*cos(p1)*cos(p2)*cos(p3);

f8:= cos(t1)*sin(p1)-sin(t1)*cos(p1) >= 0;

f9:= cos(t2)*sin(p2)-sin(t2)*cos(p2) >= 0;

f10:= cos(t3)*sin(p3)-sin(t3)*cos(p3) >= 0;

## Surface with discontinuity ...

Hello,

So I want to create an image of the cusp catastrophe that looks like this

but instead I have been getting this image where the discontinuity is plotted out to infinity

I have tried to split up the surfaces on either side of this but I haven't been able to display both on the same plot whilst using implicitplot3d.
This is the line of code for the image, there't not much too it
"
with(plots);

implicitplot3d(x^4+x^2*z+x*y, x = -7 .. 7, y = -50 .. 50, z = -10 .. 5, axes = boxed, style = surfacecontour, grid = [60, 60, 60], orientation = [180, 8, 175], 'transparency' = .1);
"
If anyone could help or point me in the right direction that would be great.
Cheers,
Darryl A.M.

## What logic is followed in this plot?...

plots[implicitplot3d](max(-x+y+z, x-y+z, x+y-z) = 1.0, x = 0 .. 1, y = 0 .. 1, z = 0 .. 1);

The help page for max does not explain or show an example of max(sequence of expressions)= a constant.

## Why are ranges exceeded?...

eq1 := z = y*log(x): eq2 := z = y+x*log(x):

DispIntersecting := implicitplot3d([eq1, eq2], x = 0 .. 10, y = -30 .. 30, z = -40 .. 40, color = [blue, green]):

solve({eq1, eq2}, [x, y, z]);

assign(%):

DispIntersection := spacecurve([x, y, z], x = 0.1e-2 .. 10, color = red, view = [0 .. 10, -30 .. 30, -40 .. 40]):

display(DispIntersecting, DispIntersection, axes = boxed, scaling = constrained);

WHen I type:

I get nothing, a blank box. But if I change the code slightly, by squaring both sides, then it works.

What is the reason for this. I uploaded an image of the output:  http://prntscr.com/752mtd

Hi there! My name is Filippo, I'm a university student in Strategic Sciences in Turin, Italy.

I've recently started a course about Maple, how to use it, and now my task is to find examples in architectural buildings that are made using quadratic equations..I've found that the Beijin National Theatre is an Ellipsoid as well as the rugby ball...I've got troubles with model proportions,I mean which numbers should I put into my equation to get a nice Ellipsoid...this is what I've done (see pic).

Could you help me to find the right proportions for this model?

 (1)

Ellissoide reale

Thank you so much!

Filippo

## 3D implicit plot with scaled axes

by: Maple

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],
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

 1 2 Page 1 of 2
﻿