How to plot this feather using a mathematical equation

2 Ansichten (letzte 30 Tage)
I came across this image that intruiged me. It is a plot of a feather based on a mathematical equation. I attempted it, but couldn't get it right. Any idea how this could me done? I tried to use vectorisation method instead of a loop for now, but any method should be okay.
P.S: I'm still fairly new with MATLAB.
Here is the code I attempted
clear; close all; clc;
syms x y
f(x,y) = (-9/10) + ( 1 + (1/6) + ((1/(3*pi))*atan(30*( (3/50)-(y+(28/25)).^2 ))) )...
.*(1-(((7*y)/10)+(2/10)).^10).*cos(x-(y/8)-(1/8)*(y+1).^2).^2000 ...
+(1-sin((170*y)- 300*(x-(y/8)-(1/8)*(y+1).^2)^2 + (400/3)*(x-(y/8)-(1/8)*(y+1).^2)^3).^6)...
.*((1/2)+((1/pi).*atan(400.*(1-(14.*(x-(1/20)-(y/8)-((1/8).*(y+1).^2).^2+(y.^2))).^2))));
figure()
fc = fcontour(f);
fc.LevelList = [0 0];
Would appreciate the help.

Akzeptierte Antwort

Davide Masiello
Davide Masiello am 26 Sep. 2022
Bearbeitet: Davide Masiello am 26 Sep. 2022
There:
clear,clc
[x,y] = meshgrid(linspace(-0.4,0.9,1000),linspace(-1.5,1.1,1000));
xy = x-y/8-(1/8)*(y+1).^2;
A = 1+1/6+atan(30*(3/50-(y+28/25).^2))/(3*pi);
B = 1-(7*y/10+2/10).^10;
C = 1-sin(170*y-300*xy.^2+(400/3)*xy.^3).^6;
D = 1/2+atan(400*(1-(14*(xy-1/20).^2+y.^2).^2))/pi;
f = -9/10 + A.*B.*cos(xy).^2000 + C.*D;
f(f>0) = 1;
f(f<0) = 0;
contourf(x,y,f,[0 1])
axis equal
map = [1 1 1 ; 0 0 0];
colormap(map)
  5 Kommentare
Davide Masiello
Davide Masiello am 27 Sep. 2022
The code as it it now plots everything all at once.
How exactly do you want to animate it?
Ahmed Mohamed Mansoor
Ahmed Mohamed Mansoor am 27 Sep. 2022
Yes you are correct.
Let's take a sin graph for example.
This is taken from the drawnow function documentation and it plots the points on a sing graph like an animation:
So would it possible to get it running like this?
clear; close all; clc;
h = animatedline;
axis([0 4*pi -1 1])
x = linspace(0,4*pi,2000);
for k = 1:length(x)
y = sin(x(k));
addpoints(h,x(k),y);
drawnow
end

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Produkte


Version

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by