# Orthogonal projection of solid

27 views (last 30 days)
Giovanni on 22 Jul 2011
I'm trying to obtain an orthogonal projection of a solid. I can easily plot my solid using surf and what I need is basically what I see on my figure but in the form of a matrix. Also, I only need the shadow of my projection.
Is there an easy way to do this through MATLAB code? I have been looking all morning and couldn't find anything yet.

Giovanni on 25 Jul 2011
I think I found a good solution. After I generate a solid with coordinates X, Y, Z, I can plot it using surf:
h = surf(X,Y,Z);
and then I can use that handle to rotate it at my will:
rotate(h,rot_axis,beta,rot_axis);
At this point I need to get my data as if it was an orthogonal projection. To do this, I first set the view to be orthogonal to the xz-plane:
view([0 0])
and then I retrieve the rotated data:
XX = get(h,'xdata');
YY = get(h,'ydata');
ZZ = get(h,'zdata');
As Doug Hull suggested, I can use this data to retrieve the solid projection by taking the min-max for each row (or column). I haven't implemented this part yet but I think it's easy. Thanks!
Giovanni on 25 Jul 2011
You're right. It takes a very long time to go through the whole process. I'm going to directly implement the rotation instead.
Thanks!

### More Answers (1)

Doug Hull on 22 Jul 2011
It sounds like you want the 'shadow' as if there was a light at -inf in the X and see what gets cast on a wall on inf side of your surface.
Could you take the min and max of the surface for each Y in your surface? I think I have seen that done, and it ends up giving you a patch.