用极坐标画一个五角星-Mathematica有谁知道怎么用极坐标画一个五角星么,?ParametricPlot[{6/25Cos[t]+4/25Cos[3/2t],6/25Sin[t]-4/25Sin[3/2t]},{t,0,4Pi},Axes->False]就知道参数方程有这个PolarPlot[1/Cos[2\[Pi]/5-Mod[\[Theta],4\[Pi]/5]],{\[Theta],0,4\[Pi]}]萌新准备做一个迈克尔逊干涉条纹的动态模拟。函数如下I[x,y]=2+2Cos[(4\[Pi])/(*10^-9)*7*10^-6*Cos[Sqrt[x^2+y^2]/]DensityPlot[2+2Cos[(4Pi/(*10^(-9)))*7*10^(-6)*Cos[(Sqrt[x^2+y^2])]/],{x,-,},{y,-,}]Manipulate[DensityPlot[2+2Cos[(4Pi/(n*10^(-9)))*7*10^(-6)*Cos[(Sqrt[x^2+y^2])]/],{x,-,},{y,-,}],{n,400,760,10}]Manipulate[DensityPlot[2+2Cos[(4\[Pi])/(n*10^-9)*7*10^-6*Cos[Sqrt[x^2+y^2]/]],{x,-,},{y,-,}],{n,400,760,10}]DensityPlot[2+2Cos[(4\[Pi])/(*10^-9)*7*10^-6*Cos[Sqrt[x^2+y^2]/]],{x,-,},{y,-,}]DensityPlot[2+2Cos[(4\[Pi])/(*10^-9)*7*10^-6*Cos[Sqrt[x^2+y^2]/]],{x,-,},{y,-,}]播放中图像错误是因为在播放的两帧之间时间太短,电脑来不及进行精确的计算,所以图像模糊,播放停止后电脑进行较为精确的计算,图像就恢复了解决方法是提前绘制好图像然后用ListAnimate播放,代码如下movies=Table[DensityPlot[2+2Cos[(4\[Pi])/(n*10^-9)*7*10^-6*Cos[Sqrt[x^2+y^2]/]],{x,-,},{y,-,}],{n,400,760,10}];ListAnimate[movies]另外由于你这个函数震荡比较严重,所以默认的绘图参数效果不是很好,增加PlotPoints或MaxRecursion选项可以提高绘图质量,效果如下,但相应的绘图时间也会大大增加,你可以尝试一下,然后自己取舍【图片】至于换成极坐标我觉得没有太大意义,http://mathematica./questions/3680/how-do-i-draw-a-densityplot-in-polar-coordinates这里是SE上的一个相关讨论,你可以看下如果只是针对这个函数的话因为变化只和r有关,所以可能会有一些针对性的优化方法,比如用ListDensityPlot指定取点位置之类的,但是点的位置指定起来有点费劲,取多了速度太慢,取少了效果又不好,我还没折腾利索所以就先不发了试着搞了一个出来,大致思路是找到函数变化比较剧烈的地方,然后用ListDensityPlot画出来。【图片】【图片】可以看到快了5倍左右,而且质量还算能忍了。代码如下:myPlot[n_]:=Module[{f,rlist,data},f[r_]:=2+2Cos[(4\[Pi])/(n*10^-9)*7*10^-6*Cos[r/]];rlist=Cases[******@Plot[f'[r]f''[r],{r,0,},MeshFunctions->(#2&),Mesh->{{0}}],Point[{x_,y_}]:>x,Infinity]~Join~{0,}//Sort;data=Table[{rCos[\[Theta]],rSin[\[Theta]],f[r]},{r,rlist},{\[Theta],0,2\[Pi],\[Pi]/30.}]~Flatten~1;ListDensityPlot[data]];myPlot[]//AbsoluteTiming大致思路就是这样,如果有进一步的需求比如提高绘图质量或者更改绘图范围之类的也可以在这基础上继续修改。顺便体格问题,不知为什么感觉ListDensityPlot比取点数目相同的Densi
用极坐标画一个五角星-Mathematica 来自淘豆网m.daumloan.com转载请标明出处.