[心得] 极座标资料点换成直角座标

楼主: Plot3D (3D做图)   2014-11-17 01:04:47
前几天我遇到的问题是怎样把一堆极座标的资料点,
换成直角坐标
polartest = Table[{10 Random[], 2 Pi Random[]}, {i, 1, 10}]
首先我用这个建立了10个 r,theta格式的资料点
p2x = CoordinateTransformData["Polar" -> "Cartesian", "Mapping"]
这是个Mathematica的内建座标转换函数,"Polar"也可以是"Spherical"
其实也等价于{Cos[#1[[2]]] #1[[1]], Sin[#1[[2]]] #1[[1]]} &
carttest = p2x /@ polartest
xtick = Table[i, {i, -10, 10, 2}];
ytick = xtick;
ListPolarPlot[Reverse /@ polartest, Ticks -> {xtick, ytick},
PlotRange -> All, PlotLabel -> "PolarCoordinate"]
我在这边始终没有得到正确的结果是因为,ListPolarPlot吃的是theta,r的list
因此必须在这里使用Reverse把list里面的两个函数反过来
ListPlot[carttest, Ticks -> {xtick, ytick}, PlotRange -> All,
PlotLabel -> "XY Coordinate", AspectRatio -> 1]
再用ListPlot画出来就可以看到这个转换是成功的了
作者: chungyuandye (养花种鱼数月亮赏星星)   2014-11-17 08:25:00
偷懒的作法: ListPolarPlot[data][[1, 3, 2, 1]]
作者: ntust661 (TOEFL_5!)   2014-11-20 18:55:00
推~

Links booklink

Contact Us: admin [ a t ] ucptt.com