将 ParametricPlot 参数表达式转换为 ContourPlot 笛卡尔表达式
Converting a ParametricPlot parametric expression to a ContourPlot cartesian expression
使用 ParametricPlot
我可以绘制以参数坐标表示的双纽线:
ParametricPlot[1/(1 + Sin[t]^2) {Cos[t], Cos[t] Sin[t]}, {t, 0, 2 [Pi]}]
我想使用 Mathematica 找到等效的笛卡尔表达式并使用我知道的 ContourPlot
绘制它:
ContourPlot[(x^2 + y^2)^2 == (x^2 \[Minus] y^2), {x, -1, 1}, {y,-1,1}]
在 MMA 函数中查找我想知道 CoordinateTransformData
或 TransformedField
是否可以帮助我,但其中 none 具有适当的坐标转换:"Parametric" -> "Cartesian"
这让我莫名其妙。
如何做到这一点?
这取决于你想要多少自动解决方案。
eq = Thread[{x, y} == 1/(1 + Sin[t]^2) {Cos[t], Cos[t] Sin[t]}];
cont = Eliminate[eq, t] // Simplify
y != 0 && x^4 + y^2 + 2 x^2 y^2 + y^4 == x^2
ContourPlot[Evaluate@Last@cont, {x, -1, 1}, {y, -1, 1}]
使用 ParametricPlot
我可以绘制以参数坐标表示的双纽线:
ParametricPlot[1/(1 + Sin[t]^2) {Cos[t], Cos[t] Sin[t]}, {t, 0, 2 [Pi]}]
我想使用 Mathematica 找到等效的笛卡尔表达式并使用我知道的 ContourPlot
绘制它:
ContourPlot[(x^2 + y^2)^2 == (x^2 \[Minus] y^2), {x, -1, 1}, {y,-1,1}]
在 MMA 函数中查找我想知道 CoordinateTransformData
或 TransformedField
是否可以帮助我,但其中 none 具有适当的坐标转换:"Parametric" -> "Cartesian"
这让我莫名其妙。
如何做到这一点?
这取决于你想要多少自动解决方案。
eq = Thread[{x, y} == 1/(1 + Sin[t]^2) {Cos[t], Cos[t] Sin[t]}];
cont = Eliminate[eq, t] // Simplify
y != 0 && x^4 + y^2 + 2 x^2 y^2 + y^4 == x^2
ContourPlot[Evaluate@Last@cont, {x, -1, 1}, {y, -1, 1}]