Mathematica中用于为数学书制作图形的简单编程技巧/技巧?

时间:2012-01-05 19:09:28

标签: wolfram-mathematica

我试着用它。这对于一些Plots来说真的很不错,但是当它以三角形为例时我发现它非常复杂。我想出了如何绘制三角形,但如何添加角度标记,那些曲线?

由于我刚开始从事这项工作,写一本书,任何人都可以推荐我这是实现漂亮图形的最佳方法,例如如下图所示。哪种程序最好用。 enter image description here

感谢您提出任何建议和意见。

6 个答案:

答案 0 :(得分:19)

这是执行第一个的简单/基本方法:

Graphics[{

 (* The dashed circle segment *)
 {
  Dashing[{.04, .01}], 
  Darker[Orange], 
  AbsoluteThickness[2], 
  Circle[{0, 0}, 1, {1, 2 \[Pi]}]
 },

 (* The solid circle segment *)
 {
  Orange, 
  AbsoluteThickness[2], 
  Circle[{0, 0}, 1, {0, 1}]
 },

 (* The radial lines and the small circle segment *)
 Line[{{0, 0}, {1, 0}}],
 Line[{{0, 0}, {Cos[1], Sin[1]}}],
 Circle[{0, 0}, .2, {0, 1}],

 (* Various text labels *)
 {
  Text[Style["\[Theta]", 24], .3 {Cos[.5], Sin[.5]}], 
  Text[Style["s", 24], 1.1 {Cos[.5], Sin[.5]}], 
  Text[Style["r", 24], {.5, -.1}]
 }
}]

Mathematica graphics

以下内容完全相同,但包含在Manipulate中且已参数化 角度alpha

Manipulate[
 Graphics[{
  {Dashing[{.04, .01}], Darker[Orange], AbsoluteThickness[2], 
  Circle[{0, 0}, 1, {\[Alpha], 2 \[Pi]}]},
  {Orange, AbsoluteThickness[2], Circle[{0, 0}, 1, {0, \[Alpha]}]},
  Line[{{0, 0}, {1, 0}}],
  Line[{{0, 0}, {Cos[\[Alpha]], Sin[\[Alpha]]}}],
  Circle[{0, 0}, .2, {0, \[Alpha]}],
  {Text[Style["\[Theta]", 
  24], .3 {Cos[\[Alpha]/2], Sin[\[Alpha]/2]}], 
  Text[Style["s", 24], 1.1 {Cos[\[Alpha]/2], Sin[\[Alpha]/2]}], 
  Text[Style["r", 24], {.5, -.1}]}
 }],
{{\[Alpha], 1}, 0, 2 \[Pi]}]

如果移动滑块,内容将相应更改:

Mathematica graphics

答案 1 :(得分:14)

编辑您也可以从Demonstrations项目中获得灵感。 These are the triangle-related demonstrations.快速浏览后,我认为您应该看到Jay Warendorff与几何相关的演示。他已经做了很多这些,他们使用了一组结构化的几何相关函数,你最有可能重用它们。


这是一个angleArc功能,可以帮助您入门。这只是您可以使用的辅助函数的一个小例子,还有很大的改进空间。

angleArc[Polygon[vertices_List, ___], r_, i_] :=
 Module[{a, b, c, phi1, phi2},
  {a, b, c} = Take[RotateLeft[vertices, i-2], 3];
  {phi1, phi2} = Sort@N[{ArcTan @@ (a - b), ArcTan @@ (c - b)}];
  If[phi2 - phi1 > Pi, phi1 += 2 Pi];
  Circle[b, r, {phi2, phi1}]
 ]

poly = Polygon[{{0, 0}, {1, 2}, {2, 1}}];

Graphics[{EdgeForm[Thick], FaceForm[None], poly, 
  Table[angleArc[poly, .2, i], {i, Length[poly[[1]]]}]}]

Mathematica graphics

Manipulate[
 With[{poly = Polygon[{a, b, c}]},
  Graphics[
   {EdgeForm[Thick], FaceForm[None], poly, 
    Table[angleArc[poly, .2, i], {i, Length[poly[[1]]]}]},
   PlotRange -> 2 {{-1, 1}, {-1, 1}}, Frame -> True
   ]
  ],
 {{a, {0, 0}}, Locator}, {{b, {1, 0}}, Locator}, {{c, {0, 1}}, Locator}
 ]

Mathematica graphics

答案 2 :(得分:9)

Wolfram支持的一个优秀产品是Geometrica。它不是一个便宜的附加装置,价格为495美元,但它会比你在原始的 Mathematica中制作更容易制作的图表。它基本上是评论中Szabolcs方法的一个非常大的扩展 - 一个绘制东西的函数库。

答案 3 :(得分:8)

我非常喜欢Mathematica。但是有更好的几何绘图选项。

在这里,您使用Geometry Expressions完成了五分钟草图(使用的分辨率非常低):

enter image description here

Geometry Expressions可以进行一些很好的平面几何计算,并可以将结果导出到Mma在线。

答案 4 :(得分:5)

是的,Mathematica的内置图形工具在某些地方有点古怪,并且有一些令人烦恼的遗漏。但是有很多基本的图形,而且从好的方面来说,你只需要几次击键就可以找到纠正图形编辑器某些缺陷所需的数学工具。需要弧线?只需在下面计算并复制/粘贴即可。使用Adobe Illustrator无法做到这一点!方程式和希腊字符也可以广泛使用。当没有别的东西可以提供时,它可能会有所帮助。

这是第一个 - 这并非完全不可接受...... :)

mathematica built-in graphics

答案 5 :(得分:5)

演示是MMA编写的优秀且低成本(50美元)的图形(以及更多)包,由David Park编写。 http://home.comcast.net/~djmpark/DrawGraphicsPage.html

我们的stackoverflow工具包中提到了资源n.2 What is in your Mathematica tool bag?