Path: news.mathworks.com!not-for-mail
From: "Marcin " <mb1234@gazeta.pl>
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$1@fred.mathworks.com>
References: <hsvvv6$7rl$1@fred.mathworks.com> <ht1pm2$1v$1@fred.mathworks.com>
Reply-To: "Marcin " <mb1234@gazeta.pl>
NNTP-Posting-Host: webapp-02-blr.mathworks.com
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: fred.mathworks.com 1274365504 6706 172.30.248.37 (20 May 2010 14:25:04 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Thu, 20 May 2010 14:25:04 +0000 (UTC)
X-Newsreader: MATLAB Central Newsreader 2009445
Xref: news.mathworks.com comp.soft-sys.matlab:637603

"Roger Stafford" <ellieandrogerxyzzy@mindspring.com.invalid> wrote in message <ht1pm2$1v$1@fred.mathworks.com>...
> "Marcin " <mb1234@gazeta.pl> wrote in message <hsvvv6$7rl$1@fred.mathworks.com>...
> > 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?

Thanks