From: "Marcin " <>
Newsgroups: comp.soft-sys.matlab
Subject: Re: Rotate 3D object to align with x-y plane
Date: Thu, 20 May 2010 14:25:04 +0000 (UTC)
Organization: Bournemouth University
Lines: 23
Message-ID: <ht3go0$6hi$>
References: <hsvvv6$7rl$> <ht1pm2$1v$>
Reply-To: "Marcin " <>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: 1274365504 6706 (20 May 2010 14:25:04 GMT)
NNTP-Posting-Date: Thu, 20 May 2010 14:25:04 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 2009445
Xref: comp.soft-sys.matlab:637603

"Roger Stafford" <> wrote in message <ht1pm2$1v$>...
> "Marcin " <> wrote in message <hsvvv6$7rl$>...
> > Hi,
> > 
> > I have a set of points describing a 3D object, which has been rotated by some small angle (below 45 degrees) with respect to x,y and z axis. I want to rotate it back to align it with the x-y plane, but the problem is I don't know the angles, so I need to calculate/estimate them somehow. So the questions are:
> > 
> > 1. how to plot the object in a mesh like manner?
> > 2. how to calculate the angles?
> > 3. how to rotate it when I know the angles?
> > 
> > Many thanks
>   I am not clear about what you mean when you say, "I want to rotate it back to align it with the x-y plane."  Do the set of points "describing" the 3D object all lie in a plane?  If so, there are many ways to rotate them so they all come to lie in the x-y plane.  Any rotation axis which lies in the plane which bisects the dihedral angle between the points' plane and the x-y plane could be used.  You can achieve any orientation you wish for the resulting x-y plane points.  If you have a preferred final orientation for the points as they lie in the x-y plane, then I could give you a specific method for solving your problem.  As it stands, the problem appears to be indeterminate if I have understood you correctly.
> Roger Stafford

Hi Roger,

Thanks for replying. I'll try to be more precise. I have a set of coordinates in 3 dimensions (xyz triplets), which describe some object. Due to the way the coordinates have been recorded, the object might be rotated, so that it's position is not say horizontal. I need to rotate it back, but first I need to detect the angle by which to rotate.

Also, is there a nice way to plot the object in MATLAB? Is it possible to interpolate or convert the data somehow to use the patch function or surf maybe?