Given an equation, i have to graph it in 3D and it should look like a water ripple

hi. i need help urgently. i was given an equation: z(x,y)=(amp*cos(sqrt((x^2+y^2)*const1))/exp((x^2+y^2)*const2)) amp is the amplitude which is 200 and x and y range from 0 to 100 const1 and const2 can be any number I am required to surf plot this equation so that it can look like a water ripple.
Please help me

 採用された回答

Paulo Silva
Paulo Silva 2011 年 8 月 28 日
amp=200;
[x,y]=meshgrid(0:100,0:100);
const1=1;
const2=0.001;
z=(amp*cos(sqrt((x.^2+y.^2)*const1))./exp((x.^2+y.^2)*const2));
surf(x,y,z)

11 件のコメント

12ar.af
12ar.af 2011 年 8 月 28 日
hi..thnx...i tried the code but the graph is no way near the solution which is a water ripple....please help
Paulo Silva
Paulo Silva 2011 年 8 月 28 日
You can see the ripples by rotating the graph, tweak the values of const1 and const2 for better results.
12ar.af
12ar.af 2011 年 8 月 28 日
the ripples have to be circular..i am sorry..i am very bad at this stuff and need the answer today.please could you help me
Paulo Silva
Paulo Silva 2011 年 8 月 28 日
amp=200;
[x,y]=meshgrid(-100:100,-100:100);
const1=1;
const2=0.001;
z=(amp*cos(sqrt((x.^2+y.^2)*const1))./exp((x.^2+y.^2)*const2));
surf(x,y,z)
12ar.af
12ar.af 2011 年 8 月 28 日
thank you very much....i appreciate it
12ar.af
12ar.af 2011 年 8 月 28 日
i got one more question....how can you make the graph look more smoother ?
Paulo Silva
Paulo Silva 2011 年 8 月 28 日
make more points inside the mesh, example
amp=2;
[x,y]=meshgrid(-50:0.6:50,-50:0.6:50); %notice the new limits and step 0.6
%smaller steps give smother waves but use more memory and takes more time
const1=1;
const2=0.001;
z=(amp*cos(sqrt((x.^2+y.^2)*const1))./exp((x.^2+y.^2)*const2));
surf(x,y,z)
colormap(winter) %looks more natural with this colormpa
Paulo Silva
Paulo Silva 2011 年 8 月 28 日
here's a better version
amp=200;
[x,y]=meshgrid(-50:.1:50,-50:.1:50);
const1=1;
const2=0.001;
z=(amp*cos(sqrt((x.^2+y.^2)*const1))./exp((x.^2+y.^2)*const2));
s=surf(x,y,z);
colormap(winter)
set(s, 'edgecolor','none') %without the black lines, closer to real water ripples
Paulo Silva
Paulo Silva 2011 年 8 月 28 日
for even better results use set(s, 'edgecolor','none','FaceColor','interp')
that removes the black lines and other colored lines, also the meshgrid can be created like this [x,y]=meshgrid(-50:.1:50); because both arguments were the same vector.
Paulo Silva
Paulo Silva 2011 年 8 月 28 日
finally you might want some transparency on your water ripples, add this line to the end of the code: alpha(0.9) %the argument must be inside the interval [0 1]
12ar.af
12ar.af 2011 年 8 月 28 日
Thanks....now it looks exactly as i wanted to be...much appreciated mate

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Community Treasure Hunt

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

Start Hunting!

Translated by