Azzera filtri
Azzera filtri

How does matlab draw the following image?

2 visualizzazioni (ultimi 30 giorni)
ma Jack
ma Jack il 18 Lug 2022
Commentato: ma Jack il 24 Lug 2022
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 Commenti
Adam Danz
Adam Danz il 18 Lug 2022
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.
ma Jack
ma Jack il 24 Lug 2022
Yes, I need a simple example code please, plus this is not homework.

Accedi per commentare.

Risposta accettata

Chunru
Chunru il 24 Lug 2022
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

Più risposte (0)

Categorie

Scopri di più su Vector Fields in Help Center e File Exchange

Prodotti


Release

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by