fsurf and function handles.
Mostrar comentarios más antiguos
I rewrite my question in the hope of making it clearer.
Let H be a vertical half-plane in
bounded by the vertical axis
. In H, we use coordinates z, the height, and r, rhe distance from the vertical axis. So
. A square card Cwith sidelength 2 lies flat on H, and is pinned through the centre of C to the point
. C rotates freely about the pin, while remaining within H.
Now we start rotating Crotating about the pin through its centre at the rate of one revolution per minute, and then we start H rotating about the vertical axis at the rate of one revolution per minute.
The task is to draw the volume swept out by C. Here is my (failed) attempt.
R = 5;
A(:,1) = [1;1]; A(:,2) =[1;-1]; A(:,3)=[-1;1]; A(:,4) = [-1;-1];
A(:,5) = A(:,1);
syms rot(ang);
rot(ang) = [cos(ang),-sin(ang);sin(ang),cos(ang)];
syms edge(i,s);
edge(i,s) = [R;0] + s*A(:,i) + (1-s)*A(:,i+1);
figure; hold;
for i = 1:4
% use? second coordinate of the vector rot(ang)*edge(i,s) to specify funz
% use? first coord, say r, of the vector rot(ang)*edge(i,s) to specify
% funx as r*cos(ang) and funy as r*sin(ang)
fsurf(funx,funy,funz,[0,1,0,2*pi]);
end
3 comentarios
Walter Roberson
el 10 de Dic. de 2018
Editada: Walter Roberson
el 21 de Dic. de 2018
four fsurf calls with hold on set?
use a cell array of function handles if you need to.
David Epstein
el 11 de Dic. de 2018
"If it were possible to define a function inside a for loop (which I don't think is possible), then my problem would be solved."
for k = ...
fun = @(...) ...;
...
end
Respuestas (0)
Categorías
Más información sobre Spline Postprocessing en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!