how make 3d plotting
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
function projmotion(x0,y0,v0,theta)
g = 9.8;
theta=45;
alpha=60;
v0=50;
y0=50;
x0=50;
z0=20;
angle = theta*(pi./180);
hangtime = 2*v0*sin(angle)/g;
t = hangtime;
x = v0*cos(theta)*sin(alpha)*t
y = v0*cos(theta)*sin(alpha)*t
z = z0+v0*sin(theta)*t-(g*t.^2)/2
if theta >90
maxheight = y0 + (v0)^2./(2*g)
xheight = x0 + v0*(t/2);
minheight = 0
error('Please select angle value of 90 degrees or less')
end;
figure('Color', [1 1 1]);
for k=0:t/100:t
x = x0 +(v0*k);
y = y0 +(v0*k)-0.5*g*(k^2);
z = z0 +(v0*k)
end
for k=0:t/100:t
x = x0 +(v0*k);
y = y0 +(v0*k)-0.5*g*(k^2);
z = z0 +(v0*k)
h = plot3(x,y,z,'.');
xlabel('Horizontal Distance (meters)');
ylabel('Height (meters)');
zlabel('Z');
title('Trajectory Time');
set(h,'MarkerSize',10);
set(h,'Color',[1,0.3,0.5]);
grid on
hold on;
pause(0.02);
end
this is my code but ı need circle on my code and the ball should fall to the ground how can I do it ?
1 Kommentar
Antworten (1)
Asvin Kumar
am 26 Dez. 2019
Please have a look at the code below.
I assume when you say the ball should fall to the ground, it comes back to the same initial height. You can modify the time of flight to bring the vertical height to 0. I also assume that by “I need circle on my code” you mean you only want the instantaneous position of the ball to be displayed and not the trajectory. I’ve made more assumptions on what the variables mean. Feel free to modify them according to your equations.
function projmotion(x0,y0,v0,theta,alpha)
g = 9.8;
theta=45;
alpha=60;
v0=50;
y0=50;
x0=50;
z0=20;
if theta >90
error('Please select angle value of 90 degrees or less')
end
angle = theta*(pi./180);
angle2 = alpha*(pi./180);
t = 2*v0*sin(angle)/g;
figure('Color', [1 1 1]);
h = plot3(x0,y0,z0,'.','MarkerSize',10);
title('Trajectory');
set(h,'Color',[1,0.3,0.5]);
xlim(sort([x0 x0+v0*cos(angle)*cos(angle2)*t]))
ylim(sort([y0 y0+v0*cos(angle)*sin(angle2)*t]))
zlim(sort([z0 z0+v0.^2./(2*g)]))
grid on
hold on
xlabel('Horizontal Distance X (meters)');
ylabel('Horizontal Distance Y (meters)');
zlabel('Vertical Distance Z (meters)');
for k=0:t/100:t
x = x0 + v0*cos(angle)*cos(angle2)*k;
y = y0 + v0*cos(angle)*sin(angle2)*k;
z = z0 + v0*sin(angle)*k-(g*k.^2)/2;
cla % TOGGLE this command to plot trajectory vs the ball
plot3(x,y,z,'.','MarkerSize',10,'Color',[1,0.3,0.5]);
pause(0.02);
end
end
0 Kommentare
Siehe auch
Kategorien
Mehr zu Line Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!