Как нарисовать линию 'y = x', используя PolarPlot в Mathematica? - PullRequest
1 голос
/ 15 декабря 2011

Потому что PolarPlot должен набирать r = ... тип команды.

Но y = x приведет к исчезновению r.

Как нарисовать эту линию с помощью PolarPlot?

Ответы [ 4 ]

3 голосов
/ 15 декабря 2011

Во-первых, рассмотрим Plot[], который «генерирует график f как функции x от xmin до xmax» (я цитирую документацию Mathematica ).Вы не можете использовать его для построения вертикальной линии, удовлетворяющей уравнению x = x0, поскольку последняя не является функцией x: вместо однозначного она имеет бесконечно много значений в x0.

Аналогично, PolarPlot[] нельзя использовать для рисования прямой линии, проходящей через начало координат, потому что ее уравнение не является функцией от θ: оно имеет бесконечно много значений при конкретном θ (равном Pi / 4 в запрошенном случае), новообще нигде.(Ну, можно также допустить дополнительный угол 3Pi / 4.)

Так что я утверждаю, что это не может быть сделано с помощью указанных инструментов, кроме чита

PolarPlot[0, {\[Theta], 0, 1}, 
   Epilog -> Line[{Scaled[{1, 1}], Scaled[{0, 0}]}]]
2 голосов
/ 15 декабря 2011

Я предлагаю вам использовать новую функцию для подобных вещей.

PolarParametricPlot[
  {rT : {_, _} ..} | rT : {_, _},
  uv : {_, _, _} ..,
  opts : OptionsPattern[]
] := 
  ParametricPlot[
    Evaluate[# {Cos@#2, Sin@#2} & @@@ {rT}],
    uv, 
    opts
  ]

Использование:

PolarParametricPlot[{t, 45 Degree}, {t, -10, 10}]

Mathematica graphics

2 голосов
/ 15 декабря 2011

Вот общая полярная форма для линии вида y = m x + b :

In[155]:= r /. 
 Solve[Eliminate[{x == r Cos[t], y == r Sin[t], y == m x + b}, {x, 
    y}], r]

Out[155]= {-(b/(m Cos[t] - Sin[t]))}

Решение исчезает, когда y-перехват b равен нулю. Это имеет смысл, поскольку такие линии рисуются под постоянным углом, что проблематично, поскольку PolarPlot работает путем изменения угла.

Вы могли бы аппроксимировать такую ​​линию, используя очень маленькое значение для b , но, возможно, есть более подходящие подходы.

1 голос
/ 15 декабря 2011

Вы можете нарисовать линию, используя ListPolatPlot:

ListPolarPlot[{{Pi/4, 5}, {5 Pi/4, 5}}, Joined -> True]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...