2012-01-05 56 views
35

我试过使用它。对于一些情节来说,这真的很好,但是当它制作一个三角形时,我发现它非常复杂。我想出了如何绘制三角形,但如何添加角度标记,那些曲线?Mathematica中用于制作数学书籍图形的简单编程技巧/技巧?

因为我是初学者,所以写书的时候,任何人都可以推荐我这是最好的方法来完成好看的图形,例如下图所示。哪些程序最适合使用。 enter image description here

感谢您的任何建议和建议。

+7

数学绝对可以让你在显示作为例子的所有图形,但它不会帮助你让他们很容易。您需要定义自己的函数,以便轻松绘制诸如角度弧之类的东西。一旦完成,应该会更容易。我认为Mathematica是非常好的,如果你需要使你的绘图非常精确,你更愿意使用程序代码和方程来描述它们。 (虽然它确实有交互式编辑。)当交互式编辑更好时,我会使用类似http://zirkel.sourceforge.net/(对于您显示的我使用ZuL而不是Mma) – Szabolcs 2012-01-05 19:15:12

+9

要闭合器:这是Mathematica标签的一个完全合法的编程问题,因为Mathematica以编程方式获取数学书籍的图形等内容。 – 2012-01-05 19:17:30

+1

对于一般背景,您可能对此演示文稿感兴趣:http://www.wolfram.com/mathematica/customer-stories/developing-interactive-textbooks-with-cdf.html。它不仅仅是静态图像,它们也是可能的,甚至可能更容易获得更多动态图像的“快照”。 – 2012-01-05 19:21:31

回答

9

一个优秀的,支持Wolfram的产品是Geometrica。这不是一个便宜的附加组件,价格为495美元,但它会产生像您的图表,比以原始形式制作 MMA Mathematica更容易。它基本上是Szabolcs方法在评论中的一个非常大的扩展 - 用来绘制内容的函数库。

+0

我会检查它!谢谢,你能告诉我MMA代表什么吗? – balboa 2012-01-05 19:50:28

+0

@balboa对不起,我很懒:MatheMaticA。 – 2012-01-05 19:53:21

+0

谢谢,因为我很伤心我是MMA的这个世界的新手 – balboa 2012-01-05 19:56:20

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} = [email protected][{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

+0

谢谢,我非常感谢这些例子。 – balboa 2012-01-05 19:59:28

+1

@balboa请参阅我刚编辑的答案。我可能会将这些演示的作者邮寄给他,并要求他提供几何函数的最新版本。如果对初学者有一点压倒性的话,演示源代码本身就是一个很好的资源。 – Szabolcs 2012-01-05 20:43:22

+0

再次感谢您。我会这样做的。你真的帮了忙。 – balboa 2012-01-05 20:52:51

8

我喜欢数学了很多。但是几何绘图有更好的选择。

在这里,您有(用非常低的分辨率)Geometry Expressions做了5分钟素描:

enter image description here

几何表达式做了一些不错的平面几何计算,并可以在网上将结果导出为MMA。

+0

我只是试过这个程序,它很容易使用。它具有用户友好的环境。就在你要将图形输出到EPS的时候 - 不要,因为它不起作用。它看起来很糟糕,但BMP看起来不错。顺便说一句,你知道如何隐藏对象后,我把它藏起来? – balboa 2012-01-06 00:30:26

+1

@balboa要隐藏/取消隐藏,请使用视图菜单下的“切换” – 2012-01-06 13:40:24

+0

@balboa不,我从来没有从GE – 2012-01-06 13:42:59

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

以下是完全一样的事情,但在角度alpha包裹在Manipulate和参数 :

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

爱它。非常感谢你,只有一个问题:如何学习绘制这样的图形?如果你可以参考教程,我的意思是你是如何学到的?谢谢! – balboa 2012-01-05 22:29:17

+1

如果你打算创建很多这样的图形,我会建议阅读Graphics上的帮助页面(http://reference.wolfram.com/mathematica/ref/Graphics.html?q=Graphics&lang=en)以及指令中的页面(http://reference.wolfram.com/mathematica/guide/GraphicsDirectives.html),它们修改了图形基元。 – 2012-01-05 22:45:12

+2

您是否扩展了图片上传器调色板以支持动画?我想这样做,但没有时间!如果你这样做了,你可以邮寄吗? :-) – Szabolcs 2012-01-06 08:49:02

5

是,Mathematica的内置图形工具在地方有点古怪,并有一些恼人的遗漏。但是基础图形的范围很广,从好的方面来说,您只需要从数学工具中轻击几下,就可以纠正图形编辑器的一些缺陷。需要一个弧线?只需在下面进行计算并将其复制/粘贴即可。无法使用Adobe Illustrator来做到这一点!还有广泛的方程式和希腊字符。当没有别的东西需要处理时,它可能会有所帮助。

这里的第一个 - 这不是完全不能接受的... :)

mathematica built-in graphics

+0

“只需在下面计算并复制/粘贴它即可......”我想你忘记了包含代码。 – abcd 2012-01-05 22:46:58

+0

我没有得到它,在哪个程序中你做了这个(Mathematica?)。看起来很好。 “只是在下面计算它” - 你能更具体一些,也许发布一个图形代码?感谢您的回答 – balboa 2012-01-05 22:52:08

+3

这是在Mathematica中使用绘图工具完成的。圆形,线条,设置线条的宽度,选择虚线样式,选择颜色等等。至于代码,我在'Graphics [Circle [{0,0},1,{0,Pi/3}]]'中键入'并将弧粘贴到我正在处理的图形中。 – cormullion 2012-01-05 23:12:30