


This function FIGURE2XHTML converts the 3D objects of a Matlab figure
to an in XHTML embedded X3D file. In a modern browser, you can now view
your figure interactively because of the great X3DOM Library
(Instant 3D the HTML way! http://www.x3dom.org/).
Currently the function supports: Axes, Patch, Line, Surface, Text, Image
and Light objects.
Browsers supported:
- Google Chrome 9.x and above
- Firefox 4.x and above
- Webkit nightly builds
- InstantReality-plugin or Flash11-plugin needed for Internet explorer
figure2xhtml(filename,handle,options)
Note : All input arguments are optional, and sorting doesn't matter
thus figure2xhtml(); is valid but also
figurexhtml(options,handle);
inputs,
filename : Name of the XHTML file (also an X3D file is created).
When empty or not known a File-Dialog is shown
handle : Figure handle or axis handle
When empty or not known the current axis (GCA) is used
options : A struct with options
options.output : Produce output files 'x3d', 'xhtml' or 'both' (default)
options.width : Width of X3D render object in pixels default 500
options.height : Height of X3D render object in pixels default 500
options.headlight : Enable Camera head light, boolean true/false
(default true)
options.embedimages : Instead of using separate .png files embed
the images in xhtml (Not supported bij IE9)
(default false)
options.title : Title of xhtml page, default 'Matlab X3D'
options.interactive : Make mesh/surface objects clickable in xhtml,
boolean true/false (default false)
Example, Click-able patch, with face color
load('functions\exampledata');
figure, hold on; axis equal;
patch(FV,'facecolor',[1 0 0],'facealpha',0.5);
FV.vertices(:,1)=FV.vertices(:,1)+80;
patch(FV,'FaceColor','interp','FaceVertexCData',rand(size(FV.vertices)),'edgecolor','none');
FV.vertices(:,1)=FV.vertices(:,1)+80;
patch(FV,'FaceColor','flat','FaceVertexCData',rand(size(FV.faces)),'edgecolor','none');
figure2xhtml('test/example1',struct('interactive',true))
Example, Lights and surface
logo
if(exist('l1','var'))
set(l1,'Position',[40 100 20]*2);
set(l2,'Position',[.5 -1 .4]*30);
end
figure2xhtml('test/example2.xhtml')
Example, Surf with colors
h=figure, hold on; sphere;
figure2xhtml('test/example3',h)
Example, Mesh
figure, axis([-3 3 -3 3 -10 5])
[X,Y] = meshgrid(-3:.125:3);
Z = peaks(X,Y);
mesh(X,Y,Z);
figure2xhtml('test/example4')
Example, Surf
figure,
[X,Y] = meshgrid(-3:.125:3);
Z = peaks(X,Y);
surf(X,Y,Z);
figure2xhtml;
Example, Lines
figure, hold on;
plot3([1 10 30]*4,[1 20 30]*4,[1 10 30]*4,'r:');
plot3([1 10 30]'*4,[1 20 30]'*4,[10 30 1]'*4,'g*');
plot3([1 5 20]'*4,[1 5 20]'*4,[3 20 1]'*4,'-g*','MarkerEdgeColor',[1 0 0]);
figure2xhtml('test/example5')
Example, Points
L = 40*membrane(1,25);
[X,Y]=ndgrid(1:size(L,1),1:size(L,2));
figure, plot3(X(:),Y(:),L(:),'r.');
figure2xhtml('test/example6')
Example, Texture on Surface
figure, hold on;
load('functions\exampledata');
surface(peaks,flipud(X),'FaceColor','texturemap','EdgeColor','none', 'CDataMapping','direct')
colormap(map)
view(-35,45)
figure2xhtml('test/example7')
Example, Axis
h=figure, hold on; sphere;
addpath([cd '/functions'])
axis2lines
figure2xhtml('test/example8',h)
Function is written by D.Kroon University of Twente (July 2011)