I have been trying to draw a steel space frame in MATLAB. I have the elementnodes and the nodecoordinates. The coding i have used is a follows:
nodeCoordinates=[0 0 0; 0 0 4; 4 0 4; 4 0 0; 0 5 0; 0 5 4; 4 5 4; 4 5 0; ];
elementnodes=elementNodes=[1 5;2 6;3 7; 4 8; 5 6; 6 7; 7 8; 8 5];
xx=nodeCoordinates(:,1);
yy=nodeCoordinates(:,2);
zz=nodeCoordinates(:,3);
plot3(xx,yy,zz,,'k--')
The code should have given a single storey space frame with 4 coulmns. But it gives some random straight lines. What am I doing wrong in the code

 Akzeptierte Antwort

Walter Roberson
Walter Roberson am 9 Feb. 2019

1 Stimme

use patch() with 'Faces' elementnodes and 'Vertices' NodeCoordinates

7 Kommentare

Swagato Das
Swagato Das am 9 Feb. 2019
Thank You for the answer. The patch() gives a polygon. But my structure is a 3D space frame. The figure is given below. I need this figure using MATLAB. Thanks in advance.
Fig1.jpg
OMAR elayan
OMAR elayan am 17 Apr. 2019
please sir can you give me code for 3d-space frame
Using the vertices nodes from the original question:
nodeCoordinates=[0 0 0; 0 0 4; 4 0 4; 4 0 0; 0 5 0; 0 5 4; 4 5 4; 4 5 0; ];
elementNodes = [1 4 3 2; 5 8 7 6; 1 2 6 5; 3 4 8 7; 2 3 7 6; 1 5 8 4];
patch('Faces', elementNodes, 'Vertices', nodeCoordinates)
I took care to arrange all of the faces counter-clockwise to permit proper lighting.
Swagato Das
Swagato Das am 17 Apr. 2019
Thank You sir.
Priyanshu Rajak
Priyanshu Rajak am 25 Nov. 2020
will writing just this code work or i need to type something else too?
nodeCoordinates=[0 0 0; 0 0 4; 4 0 4; 4 0 0; 0 5 0; 0 5 4; 4 5 4; 4 5 0; ];
elementNodes = [1 4 3 2; 5 8 7 6; 1 2 6 5; 3 4 8 7; 2 3 7 6; 1 5 8 4];
patch('Faces', elementNodes, 'Vertices', nodeCoordinates, 'Facecolor', 'none'); view(3)
Priyanshu Rajak
Priyanshu Rajak am 26 Nov. 2020
Thank you Sir.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by