how to draw a tilted circle?

13 ビュー (過去 30 日間)
bsd
bsd 2011 年 10 月 3 日
Hai,
The following code draws a circle in the x-z plane in 3D.
radius=1;
center=[2 4 2];
theta=linspace(0,2*pi);
rho=ones(1,100).*radius;
[x,z]=pol2cart(theta,rho);
x=x+center(1);
z=z+center(3);
y=center(2)*ones(1,length(x));
figure;
h=plot3(x,y,z);
grid on;
axis square;
By default the above circle is vertical in the x-z plane. I need to draw a circle which is inclined or tilted at some angle. How could I do this?
Looking forward for your reply.
BSD
  1 件のコメント
Walter Roberson
Walter Roberson 2011 年 10 月 3 日
Duplicate is at http://www.mathworks.com/matlabcentral/answers/17160-how-to-draw-an-inclined-circle

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

採用された回答

Jan
Jan 2011 年 10 月 3 日
You have X-, Y- and Z-coordinates. Now you want to tilt the obejct. This can be done by applying a rotation matrix, e.g. for a rotation around the Z-axis by the angle a :
R = [ cos(a), sin(a), 0; ...
-sin(a), cos(a), 0; ...
0, 0, 1];
This matrix must be multiplied to the array of coordinates. See also: Wiki: Rotation Matrix
  4 件のコメント
Walter Roberson
Walter Roberson 2011 年 10 月 4 日
Generate the circle around (0,0,0), rotate it, and then translate the circle by the coordinates of the new center that you want.
Or if you already have a circle existing and decide later that you want to tilt it, then translate it to (0,0,0), rotate it, and then translate it back.
bsd
bsd 2011 年 10 月 5 日
It is working. Excellent... Thank you...
BSD

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

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2011 年 10 月 3 日
The answer hasn't changed since your previous time asking.
If you wish to do it mathematically instead of the way I suggested before, then say as much (at which point I would say, "So, did you read the documentation to find out what that routine actually does ?")
  1 件のコメント
Jan
Jan 2011 年 10 月 3 日
@Walter: Your answer has been complete. I add more details only, because it seems that the OP cannot follow completely.

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

カテゴリ

Help Center および File Exchange2-D and 3-D Plots についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by