MATLAB Answers

Plot a moving wheel in the 3D space

1 view (last 30 days)
Gregory Cottone
Gregory Cottone on 25 Jul 2021
Commented: darova on 30 Jul 2021
Hi,
I need to plot a wheel moving in the 3D space, for example a rolling wheel in a circumferential trajectory, could someone help me to do this?
Thank you all in advance,
Gregory

Answers (1)

darova
darova on 26 Jul 2021
% create model
t = linspace(0,2*pi,10);
[x,y] = pol2cart(t,1);
X = [y*0;y*0;y*0+2;y*0+2];
Y = [y*0;y;y;y*0];
Z = [x*0;x;x;x*0];
h1 = surf(X,Y,Z); % closed cylinder
[x0,y0] = meshgrid(-1:3,-1:10);
h2 = surface(x0,y0,x0*0-1); % plate
% animte
axis equal
for i = 1:10
rotate(h1,[1 0 0],pi/10,[0 0 0])% rotate wheel
y1 = get(h2,'ydata');
set(h2,'ydata', y1-pi/10) %move plate
pause(0.5)
end
  2 Comments
darova
darova on 30 Jul 2021
Here is
t = 0:.1:50; % wheel velocity
p = pi/4+t/30; % angular velocity around Z axis
x = (t+cos(-t)) .* cos(p);
y = (t+cos(-t)) .* sin(p);
z = 1 + sin(-t);
surf([x;x],[y;y],[z;z-.3])
% view(90,90)
xlabel('x')
ylabel('y')
light
axis equal

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!