How does matlab draw the following image?
    조회 수: 2 (최근 30일)
  
       이전 댓글 표시
    

      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
  Adam Danz
    
      
 2022년 7월 18일
				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.  
채택된 답변
  Chunru
      
      
 2022년 7월 24일
        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
추가 답변 (0개)
참고 항목
카테고리
				Help Center 및 File Exchange에서 Vector Fields에 대해 자세히 알아보기
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




