在mathematica中绘制多规则函数

时间:2011-07-21 15:49:53

标签: wolfram-mathematica plot

如何在Mathematica中编写与此类似的函数(复杂轮廓)的代码: enter image description here

2 个答案:

答案 0 :(得分:5)

我不确定c是什么,但我认为这是一个0到1之间的数字,意思是进入的直线的高度。那么也许这样的话可以满足你的需求呢?

c = 0.7;
t0 = ArcSin[c];
PolarPlot[If[Abs[t] < t0, Abs[Sin[t0]/Sin[t]], 1], {t, -\[Pi], \[Pi]}]

答案 1 :(得分:4)

最直接的方法是使用图形原型 (虽然我认为我更喜欢Felix的PolarPlot解决方案)

With[{q = Pi/6}, 
 Graphics[{Circle[{0, 0}, 1, {q, 2 Pi - q}], 
   Arrowheads[{{.05, .8}}], 
   Arrow[{{Cos[q] + 2, Sin[q]}, {Cos[q], Sin[q]}}], 
   Arrow[{{Cos[q], Sin[-q]}, {Cos[q] + 2, Sin[-q]}}],
   FontSize -> Medium, Text["\[ScriptCapitalC]", {2, Sin[q]}, {0, -2}]}, 
  Axes -> True, PlotRange -> {{-4, 6}, {-4, 4}}]]

contour

我想如果你想要轮廓的实际功能,那么可能就像

contour[t_, t0_: (5 Pi/6)] := Piecewise[{
   {Exp[I (t + Pi)], -t0 < t < t0},
   {t - t0 + Exp[I (t0 + Pi)], t >= t0},
   {-t - t0 + Exp[-I (t0 + Pi)], t <= -t0}}]

ParametricPlot[Through[{Re, Im}[contour[t]]], {t, -8, 8}, PlotPoints -> 30]

contour v2

要在此图中添加箭头,我猜您必须手动添加它们(使用Epilog或绘图工具)或使用其中一个修改内置图的包。