fsurf and function handles.
Show older comments
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 Comments
Walter Roberson
on 10 Dec 2018
Edited: Walter Roberson
on 21 Dec 2018
four fsurf calls with hold on set?
use a cell array of function handles if you need to.
David Epstein
on 11 Dec 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
Answers (0)
Categories
Find more on Spline Postprocessing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!