VRML surface conic projection
Show older comments
How can i do a conic projection of a surface in VRML format ?
6 Comments
andre padilla
on 7 Apr 2020
andre padilla
on 7 Apr 2020
darova
on 7 Apr 2020
Is this correct?

Do you know how the cone is situated?
andre padilla
on 7 Apr 2020
Answers (3)
darova
on 8 Apr 2020
0 votes
andre padilla
on 11 Apr 2020
0 votes
3 Comments
darova
on 11 Apr 2020
Where do you see a sphere?

andre padilla
on 11 Apr 2020
darova
on 11 Apr 2020
Can you attach the data?
andre padilla
on 11 Apr 2020
0 votes
3 Comments
darova
on 11 Apr 2020
Please don't post new answer. Use existing one
darova
on 11 Apr 2020
I uploaded this program to read your file: LINK
Inside the program i changed this line (someone in comments to this script did the same)
keynames=char('Coordinate','point','coordIndex','color');
Then used this script to import to MATLAB and make a projection
[nel,w3d,infoline] = read_vrml1('myscene.wrl');
%%
cla
pts = w3d(1).pts;
fv.vertices = pts;
fv.faces = w3d(1).knx;
patch(fv,'facecolor','g')
a = 60;
[X,Y] = meshgrid(-20:20); % grid for cone
Z = 40-1/tand(a)*sqrt(X.^2+Y.^2); % Z coordinate of cone
surface(X,Y,Z,'facecolor','none','edgecolor','y')
[td,rd] = cart2pol(pts(:,1),pts(:,2)); % convert data to polar system
L0 = rd*sind(a) + (40-pts(:,3))*cosd(a);
r0 = L0 * sind(a); % new radius
zd = 40-L0 * cosd(a); % new Z coordinate
[xd,yd] = pol2cart(td,r0,pts(:,3)); % conert to cartesian
fv1.vertices = [xd yd zd];
fv1.faces = fv.faces;
patch(fv1,'facecolor','r')
light
axis vis3d equal
Unfortunately i didn't find a way to import colors

Honestly: looks like 
Is it you wanted? Or you wanted flat projection?
andre padilla
on 12 Apr 2020
Categories
Find more on Coordinate Reference Systems in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
