公告:本站正式转型为非交互式静态网站!
转型:本站将通过笔记和博客的形式继续为大家服务,关于 Mathematica 问答服务请移步至QQ群:365716997
联系:如有问题请联系QQ群管理员,或发送邮件至:lixuan.xyz@qq.com。
感谢:最后非常感谢大家多年来的支持与帮助!
参考《互联网跟帖评论服务管理规定》《中华人民共和国网络安全法》《网络信息内容生态治理规定》《互联网用户账号信息管理规定》

—— 2022-11-27

欢迎来到 Mathematica 问答社区

提问时请贴上文本代码

语法高亮:在编辑器中点击

被禁止的话题:广告破解

请阅读:《提问的智慧》

备用域名:mma.ooo

支持LaTex数学公式
行内公式标识符:\$ 或“$\backslash ($”+“$\backslash )$”,
行间公式标识符:\$\$ 或 “$\backslash [$”+“$\backslash ]$”

社区建议QQ群:365716997

分类

0 投票
4.0k 浏览

如何利用MMA的内置函数绘制隐函数极坐标图形,比如:r^2 == 1-r*Cos[theta]

如果没有的话能否建个内置函数我加到包里面,样式可以仿照Maple,就是最后带个选项,确认是在极坐标还是直角坐标或者自定义坐标系统内绘图。

分类:绘图 | 用户: mma-2-2-2 (1.3k 分)
修改于 用户:mma-2-2-2

1个回答

+2 投票
 
已采纳
用户: xzczd (2.2k 分)
采纳于 用户:mma-2-2-2
ClearAll@implicitPlot
implicitPlot[eq_, range__, coordSys_,
  opt : OptionsPattern[ContourPlot]] :=
 Module[{coord},
  With[{trans = #[coord, #2] &[Function,
       CoordinateTransform[
        coordSys -> "Cartesian", {coord[1], coord[2]}]] /.
      coord[i_] :> Part[coord, i]},
   Module[{plot = ContourPlot[eq, range, opt, PlotRange -> All]},
    plot[[1, 1]] = trans[plot[[1, 1]]\[Transpose]]\[Transpose]; plot]]]

implicitPlot[
 Cos[r] == theta, {r, 0, 40}, {theta, -8 Pi, 8 Pi}, "Polar",
 PlotPoints -> 100]
ClearAll["Global`*"]
PolarPlot[ArcCos[theta], {theta, -8 Pi, 8 Pi}, PlotRange -> 40,
 PlotPoints -> 100]
这两个绘制的图形怎么不一样呢?应该是r的取值范围有些许差异,怎么处理才能绘出相同的图形呢
ArcCos函数的输入应该是-1到1啊。。你概念就错了,就不用谈代码了。
Reduce[Cos[r] == theta, r]
PolarPlot[
 Evaluate@Flatten@
   Table[a ArcCos[theta] + b 2 Pi, {a, {-1, 1}}, {b, 0,
     10}], {theta, -8 Pi, 8 Pi}, PlotRange -> {{0, 40}, {-32, 32}},
 PlotPoints -> 100, AspectRatio -> 1, Frame -> True]
用Reduce看一下反函数,就知道PolarPlot里面应该怎么写了。
谢谢苹果 貌似是极坐标周期函数 我认真体会一下
...