fsurf and function handles.
Ältere Kommentare anzeigen
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 Kommentare
Walter Roberson
am 10 Dez. 2018
Bearbeitet: Walter Roberson
am 21 Dez. 2018
four fsurf calls with hold on set?
use a cell array of function handles if you need to.
David Epstein
am 11 Dez. 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
Antworten (0)
Kategorien
Mehr zu Spline Postprocessing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!