I have a set of nine 3-D points, with the following form:
e = 0.2;
points3d = [-e -e 0
-e 0 0
-e e 0
0 -e 0
0 0 0
0 e 0
e -e 0
e 0 0
e e 0]';
I would like to apply a 3-D geometric transformation to this set of nine 3d points, so that they are rotated and translated to a random position. What is the easiest way to do this?
Thanks.

 採用された回答

Mike Garrity
Mike Garrity 2015 年 10 月 5 日

0 投票

Probably the simplest is something like this:
mat = makehgtform('axisrotate',[1 1 1],pi/5, 'translate',[1 2 3]);
newpts = mat * [points3d; ones(1,9)];
See this blog post for background. The examples in that post are mostly 2D to keep things compact, but the theory is the same in 3D.

1 件のコメント

Andrea Alberti
Andrea Alberti 2015 年 10 月 5 日
Thanks, I like the makehgtform, very compact.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Particle & Nuclear Physics についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by