Patch: Transforming an implicitplot3d

The procedures homothety , project , reflect , rotate , scale , transform and translate in the plottools package, and changecoords in the plots package, can be used to perform various transformations on many plot structures. However, they do not work with the ISOSURFACE structure created by implicitplot3d . The Maple Advisor Database patchtransform procedure installs a patch which remedies this.

> with(plots): with(plottools):

> P:= implicitplot3d(x^2+y^2+z^2=1,x=0..1,y=0..1,z=0..1, scaling=constrained,axes=frame):

> homothety(P,2);

Error, (in plottools/transform/object) not implemented yet

For copyright reasons, patchtransform is a procedure that produces a new version of the original Maple library procedure `plottools/transform/object` , rather than a new version of the Maple library procedure itself. Running patchtransform() once will save the new version of `plottools/transform/object` , together with a new procedure `plottools/transform/isosurface` , into a library (which could be the Maple Advisor Database library - saving it into Maple's own "lib" library is not recommended). Then (as long as this library's directory is present in your libname before Maple's "lib" directory), the patched procedure will be used. The directory to be used is the value of the variable savelibname , if that has been assigned a value, otherwise the first one in libname . I recommend that your "advisor" directory containing the Maple Advisor Database files be the first member of libname , so in most cases the corrected procedure will go there. If necessary, assign a new value to savelibname before running patchtransform .

> savelibname:= "c:/advisor";

savelibname :=

Now run patchtransform() . A warning will result if you attempt to install the patch in a directory whose name does not include the word "advisor", and you will be asked to confirm that this directory is the proper target. This is intended to prevent you from accidentally writing to Maple's own "lib" or "update" libraries.

> patchtransform();

Once the patch has been installed, it need not be installed again. Now all the affected procedures should work with an ISOSURFACE.

> homothety(P,2);

[Maple Plot]

> P:= implicitplot3d(r=cos(phi),r=0..1,theta=0..2*Pi,
phi=0..Pi/2,scaling=constrained,axes=box):
changecoords(P,spherical);

[Maple Plot]

See also: changecoords , homothety , implicitplot3d , libname , plot[structure] , plottools , project , reflect , rotate , scale , transform , translate

Maple Advisor Database R. Israel, 2000