fsurf and function handles.
이전 댓글 표시
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
Walter Roberson
2018년 12월 10일
편집: Walter Roberson
2018년 12월 21일
four fsurf calls with hold on set?
use a cell array of function handles if you need to.
David Epstein
2018년 12월 11일
"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
답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Spline Postprocessing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!