How does matlab draw the following image?

Note that the basic geometric elements inside are spheres, cones and small cylinders, and that the known data are the 3D positions of the spheres [x1,y1,z1] and the 3D vectors of the arrows on each small ball [x2,y2,z2], which seems difficult

3 Comments

Jan
Jan on 18 Jul 2022
Edited: Jan on 18 Jul 2022
The question is vague. What do you want to konw exactly? Are you asking for the code or how the drawing is implemente in Matlab?
If the code is your problem, what have you tried so far? At least drawing the 3 spheres seems to be trivial using the spheres command.
Is this a homework question?
Currently there is no 3D quiver function that produces those types of objects. There may be a file in the file exchange that comes close, for example: arrow3. Alternatively, you could produce a 3D quiver using the functions you described (sphere, and cylinder for the arrow and bars). If you go that route, I would make a function that creates 3D quiver arrows given a vector of direction and a vector of magnitudes.
Yes, I need a simple example code please, plus this is not homework.

Sign in to comment.

 Accepted Answer

clf
ax = axes;
hold on
view(3)
grid on
% The arrows (vertical)
[xs, ys, zs] = sphere(50);
[xc, yc, zc] = cylinder(0.5, 50);
[xa, ya, za] = cylinder([1 0], 50);
h(1) = surface(0.7*xs, 0.7*ys, zs, 'EdgeColor','none');
h(2) = surface(xc, yc, 5*zc, 'EdgeColor','none');
h(3) = surface(xa, ya, 2*za+5, 'EdgeColor','none');
t = hgtransform('Parent',ax);
set(h,'Parent',t)
% Make transform: rotate, translate, scaling and so on
Ry = makehgtform('yrotate',20);
% Scaling matrix
Sxy = makehgtform('scale', 2);
% Concatenate the transforms and
% set the transform Matrix property
set(t,'Matrix',Ry*Sxy)
colormap(gray(256));
axis equal
material metal

1 Comment

Thank you very much sir, it was very enlightening

Sign in to comment.

More Answers (0)

Categories

Products

Release

R2018b

Asked:

on 18 Jul 2022

Commented:

on 24 Jul 2022

Community Treasure Hunt

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

Start Hunting!