Not able to Understand Code for "Volume of Solid by Revolution"

6 visualizaciones (últimos 30 días)
Dhairya
Dhairya el 14 de Nov. de 2022
Comentada: Dhairya el 15 de Nov. de 2022
clc
clear all
close all
syms x
f = input('Enter the function')
fL = input('Enter the interval on which the function is defined')
yr = input('Enter the axis of rotation')
iL = input('integration limits')
volume = pi*int((f-yr)^2,iL(1),iL(2));
disp(['Volume is: ',num2str(double(volume))])
fx = inline(vectorize(f));
xvals = linspace(fL(1),fL(2),201);
xvals = fliplr(xvals);
xivals = linspace(iL(1),iL(2),201);
xivalsr = fliplr(xivals);
xlim = [fL(1) fL(2)+0.5];
ylim = fx(xlim);
figure('Position',[100 200 560 420])
subplot(2,1,1)
hold on
plot(xvals,fx(xvals),'-b','LineWidth',2);
[X,Y,Z] = cylinder(fx(xivals)-yr,100);
figure('Position',[700 200 560 420])
Z = iL(1) + Z.*(iL(2)-iL(1));
surf(Z,Y+yr,X,'EdgeColor','none','FaceColor','flat','FaceAlpha',0.6);
hold on
plot([iL(1),iL(2)],[yr yr], 'r-', 'LineWidth', 2);
xlabel('X-axis');
ylabel('Y-axis');
zlabel('Z-axis');
view(22,11)
  1 comentario
Dhairya
Dhairya el 14 de Nov. de 2022
please explain this part in the code
[X,Y,Z] = cylinder(fx(xivals)-yr,100);
figure('Position',[700 200 560 420])
Z = iL(1) + Z.*(iL(2)-iL(1));
surf(Z,Y+yr,X,'EdgeColor','none','FaceColor','flat','FaceAlpha',0.6);
hold on
plot([iL(1),iL(2)],[yr yr], 'r-', 'LineWidth', 2);

Iniciar sesión para comentar.

Respuesta aceptada

Jim Riggs
Jim Riggs el 14 de Nov. de 2022
[X,Y,Z] = cylinder(fx(xivals)-yr,100);
Creates a set of 3D points that define a cylinder
figure('Position',[700 200 560 420])
Creates a figure window, specifying the size and position on the screen
Z = iL(1) + Z.*(iL(2)-iL(1));
Defines variable Z
surf(Z,Y+yr,X,'EdgeColor','none','FaceColor','flat','FaceAlpha',0.6);
Draws a surface plot in the figure window. Specifying the edge color as 'none' Face color is 'flat' and FaceAlpha is 0.6 (The facealpha of 0.6 makes the surfaces partially transparent)
hold on
Turns on 'hold' mode for the figure window, so that the next plot command will be addded to the figure window without erasing the existing figure.
plot([iL(1),iL(2)],[yr yr], 'r-', 'LineWidth', 2);
Adds a line plot to the figure window using, specifying a red color ('r') and a line width of 2.

Más respuestas (0)

Categorías

Más información sobre Surface and Mesh Plots en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by