필터 지우기
필터 지우기

How to Plot A 3D Ring of any given shape?

조회 수: 4 (최근 30일)
Sushmitha Kudari
Sushmitha Kudari 2020년 2월 22일
댓글: Walter Roberson 2020년 2월 23일
Say for example I have a 2D matrix that makes a simple shape like a star, rectangle or circle. How can I take this 2D shape and turn it into a 3D ring? If it was a star, a star shaped ring, if its a square, a square shaped ring and so on...
  댓글 수: 2
Jacob Wood
Jacob Wood 2020년 2월 23일
Would you like to extrude your 2D shape into a 3D shape? And what is the intended result? A plot of this object or just a matrix description?
Sushmitha Kudari
Sushmitha Kudari 2020년 2월 23일
I would like to first make a 3d matrix of it and then plot it as a point cloud. Yes I would like to extrude a 2D shape into a 3D one.

댓글을 달려면 로그인하십시오.

채택된 답변

Walter Roberson
Walter Roberson 2020년 2월 23일
Create a reference set of vertices centered around 0, 0, and a description of faces joining them. I suggest using something compatible with patch()
Now translate the reference point out to what would correspond to angle 0 in the ring.
Now iterate.
Use makehgtform to create a transform matrix that would describe rotating (relative to the origin) by the appropriate angle for this iteration.
Now apply the transform matrix to the reference vertex coordinates by matrix multiplication, keeping them in the same relative order. Record the rotated coordinates for your point cloud. Usethe rotated coordinates and the previously constructed face information to patch() the rotated object into visual existence.
After all of the iterations, use the recorded vertices to patch() into place faces joining each rotated object to its adjacent rotated object -- the skin of the ring.
If your object being rotated has no internal structure such that the skin is all you care about then you can skip the patch() as you iterate, just using the list of final coordinates to build the skin.
  댓글 수: 4
Sushmitha Kudari
Sushmitha Kudari 2020년 2월 23일
Could you show me an example of how to do this with a simple matrix like this
xy = [4 0; 8 1; 4 2; 1 9; 3 4];
Walter Roberson
Walter Roberson 2020년 2월 23일
Not without writing the code for you. The algorithm I set out should be enough for you to create the point cloud of the ring. Once you have done that part then we will look more closely at the challenges of drawing a solid around the point cloud.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by