Citat:
Ursprungligen postat av Rasnafd
Tjena! Utgick inte så mycket från ditt lösningsförslag, utan från din problembeskrivning, så jag kan ha missat något. Gjorde den på ett lite annorlunda sätt dessutom. Men du kan ju kolla om det är något som skulle vara av intresse.
Btw, har du inte formulerat din radie lite fel? Om din variabel a var arean, så borde väl radien vara sqrt(a/pi) ?
%--------------
clc, clear variables, clf, close all
d = 4;
a = 12.5664;
r = sqrt(a/pi)
theta = linspace(0,2*pi);
% hold on
for i = 1:360
x = r.*cos(theta)+d.*cosd(i); %cosd och sind är samma, bara att
y = r.*sin(theta)+d.*sind(i); %deras argument är i grader istället för rad
plot(x,y)
axis([-10 10 -10 10])
pause(0.01)
end
%--------------
Löste problemet, här kommer slutgiltiga koden.
function Lab9a_1(a,rotRad)
close all
circleRadius = sqrt(a/pi);
cx = 0;
cy = 0;
for j = 1:30
cx = rotRad*cos(j*2*pi/30);
cy = rotRad*sin(j*2*pi/30);
drawDisk(cx,cy,circleRadius);
mov(j) = getframe;
end
movie(mov,11,24);
end
function drawDisk(cx,cy,radius)
[x,y] = meshgrid(-200:200);
circleImage = (x-cx).^2 + (y-cy).^2 < radius^2; % the disk
imagesc(x(:,1),y(:,1),circleImage);