Wolfram mathematica Mathematica中为数学书制作图形的简单编程技术/技巧?

Wolfram mathematica Mathematica中为数学书制作图形的简单编程技术/技巧?,wolfram-mathematica,Wolfram Mathematica,我试着用它。对于一些情节来说,这真的很好,但是当它要制作一个三角形的时候,我发现它相当复杂。我知道怎么画一个三角形,但怎么加上那个角度标记,那个些曲线 既然我是这项工作的初学者,写一本书,谁能推荐我哪种方法是完成漂亮图形的最好方法,比如下图。哪些程序最适合使用。 谢谢你的建议和建议 一个优秀的钨支持产品是。这不是一个495美元的廉价附加组件,但它将生成像您这样的图表,比在原始MMA Mathematica中进行要容易得多。它基本上是评论中Szabolcs方法的一个非常大的扩展-一个用于绘制素材

我试着用它。对于一些情节来说,这真的很好,但是当它要制作一个三角形的时候,我发现它相当复杂。我知道怎么画一个三角形,但怎么加上那个角度标记,那个些曲线

既然我是这项工作的初学者,写一本书,谁能推荐我哪种方法是完成漂亮图形的最好方法,比如下图。哪些程序最适合使用。


谢谢你的建议和建议

一个优秀的钨支持产品是。这不是一个495美元的廉价附加组件,但它将生成像您这样的图表,比在原始MMA Mathematica中进行要容易得多。它基本上是评论中Szabolcs方法的一个非常大的扩展-一个用于绘制素材的函数库。

编辑您也可以从演示项目中获得灵感。在快速浏览之后,我认为您应该会看到与几何体相关的演示。他制作了很多这样的函数,它们使用了一组结构化的几何相关函数,您很可能可以重用这些函数


这里有一个
angelarc
函数让您开始学习。这只是一个你可以使用的助手函数的小例子,还有很多改进的空间

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]]]}]}]


我非常喜欢数学。但几何图形有更好的选择

这里有一个五分钟的草图(使用了非常低的分辨率):


几何表达式可以进行一些漂亮的平面几何计算,并可以将结果导出到Mma online。

以下是执行第一个操作的简单/基本方法:

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}]
 }
}]

下面是完全相同的内容,但被包装在
操作中并被参数化
在角度
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的内置图形工具在某些地方有点古怪,并且有一些令人讨厌的遗漏。但是有很多基本的图形,而且,从好的方面来说,你只需要敲击几下键盘就可以使用数学工具来纠正图形编辑器的一些缺陷。需要弧线吗?只需在下面计算并复制/粘贴即可。不能用AdobeIllustrator这样做!方程式和希腊文字也有广泛的使用途径。如果手头没有其他事情,这可能会有帮助

这是第一个——这不是完全不可接受的……:)


演示文稿是一个优秀且低成本(50美元)的MMA图形包(更多),由David Park编写。

在我们的stackoverflow工具包中,它被称为资源n.2

Mathematica绝对可以制作您作为示例显示的所有图形,但它不能帮助您轻松制作。您需要定义自己的函数,以便轻松绘制角度弧之类的东西。一旦做到这一点,应该会更容易。我认为Mathematica非常好,如果你需要使你的绘图非常精确,你更喜欢用程序代码和方程式来描述它们。(虽然它有交互式编辑。)当交互式编辑更好时,我会使用类似的东西(对于你展示的那些,我会使用Z.u.L,而不是Mma)给收银员:这是Mathematica标签的一个完全合法的编程问题,由于Mathematica以编程方式获取数学书的图形等内容。@LeonidShifrin我注意到许多合法的Mathematica问题都会被投票通过。@Tim Kemp这有望很快结束,因为我们有一个新的SE Mathematica网站提案正在获得动力:。请考虑支持它。这里的环境实在太大了,不能在这里居住,而且很多问题都与编程无关。谢谢你让我们知道这个建议。我也会查一查的!谢谢,你能告诉我MMA代表什么吗?@balboa对不起,我很懒:MatheMaticA.谢谢,当我难过我是MMA世界的新成员时,谢谢你,我真的很感谢这些例子。@balboa请查看我刚刚编辑成答案的链接。我可能会给那些演示的作者发邮件,并询问他的几何函数的最新版本。演示源代码本身就是一个很好的资源,如果对初学者来说有点难以承受的话。再次感谢您。我会的。你真的帮了忙。@巴尔博亚把这个问题看作是一种灵感,而在做一本数学书时,它和Szabolcs指出的方向是一样的。这个问题将是你寻求的另一个暗示:爱它。非常感谢,只有一个问题:如何学习绘制这样的图形?如果你能参考教程,我的意思是你是如何学习的?非常感谢。如果您要创建大量此类图形,我建议您阅读有关图形()的帮助页面,以及有关修改图形原语的指令()的页面。您是否扩展了图像上载器调色板以支持动画?我想这么做,但还没有时间!如果你这样做了,你能寄它吗?:-)@Szabolcs-不,我没有对你(非常有用)的调色板做任何更改/添加。“只需在下面计算并复制/粘贴它”。。。我猜你忘了包含代码。我没有得到它,你是在哪个程序中做的(Mathematica?)。看起来不错。“只需在下面计算”——你能更具体一点吗,也许可以发布一个图形代码?感谢您的回答这是用Mathematica的绘图工具完成的。圆、线、设置线的宽度、选择虚线样式、选择颜色等。至于代码,我输入了
Graphics[Circle[{0,0},1,{0,Pi/3}]
,并将圆弧粘贴到我正在处理的图形中。@cormullion希望您看到关于上述问题的评论,并提到。很高兴看到你提交并参与测试版网站。我只是
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]}]