利用Asymptote讲解初中数学.pdf_第1页
利用Asymptote讲解初中数学.pdf_第2页
利用Asymptote讲解初中数学.pdf_第3页
利用Asymptote讲解初中数学.pdf_第4页
利用Asymptote讲解初中数学.pdf_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

利用 Asymptote 讲解初中数学 红色超越 2015 年 11 月 7 日 1安装 TEX Live TEX Live 是一个完整的 TEX 系统,它可以安装在本地磁盘上。主页:/texlive/。 具体的安装方法请参照各种教程,这里不做重复说明。 2基本绘图说明 首先针对常用的绘图方法进行说明,主要是一些代码示例,希望能够抛砖引玉。感兴趣的话可以进一步学习相关 的官方文档或者教程。页面布局采用左边是最终绘制结果,右边是实现代码的方式,并且配有注释。具体的函数说明 请参照官方文档。 3构造平面直角坐标系 因为图形的绘制不能脱离坐标系,所以在这里以构造平面直角坐标系作为起点,让我们熟悉一下 Asymptote。 3.1基本构造 y x O 1/ 导入绘图模块导入绘图模块 2import graph; 3/ 导入几何模块导入几何模块 4import geometry; 5/ 设置尺寸设置尺寸 6size(5cm); 7/ 绘制横轴绘制横轴 8xaxis($x$, -1, 5, Arrow); 9/ 绘制纵轴绘制纵轴 10yaxis($y$, -1, 5, Arrow); 11/ 标记原点,位置西南标记原点,位置西南 12label($O$, origin, SW); 1 3构造平面直角坐标系2 3.2复杂一点的构造 4 2 2 4 y 4224 x O 1/ 导入绘图模块导入绘图模块 2import graph; 3/ 导入几何模块导入几何模块 4import geometry; 5/ 设置尺寸设置尺寸 6size(5cm); 7/ 绘制横轴,刻度位于左侧,不标记绘制横轴,刻度位于左侧,不标记0 8/ 设定主、副刻度步长设定主、副刻度步长 9xaxis(Label($x$, align = 2E), -5, 5, 10LeftTicks(modify = NoZero, Step = 2, step = 1), 11Arrow); 12/ 绘制纵轴,刻度位于右侧,不标记绘制纵轴,刻度位于右侧,不标记0 13/ 设定主、副刻度步长设定主、副刻度步长 14yaxis(Label($y$, align = 2N), -5, 5, 15RightTicks(modify = NoZero, Step = 2, step = 1), 16Arrow); 17/ 标记原点,位置西南标记原点,位置西南 18label($O$, origin, SW); 3.3带有网格的平面直角坐标系 5 5 y 55 x O 1/ 导入绘图模块导入绘图模块 2import graph; 3/ 导入几何模块导入几何模块 4import geometry; 5/ 设置尺寸设置尺寸 6size(5cm); 7/ 定义横轴的范围定义横轴的范围 8int minX = -5, maxX = 5; 9/ 定义纵轴的范围定义纵轴的范围 10int minY = -5, maxY = 5; 11xaxis(Label($x$, align = 2E), minX, maxX, 12Ticks(modify = NoZero, step = 1), 13Arrow); 14yaxis(Label($y$, align = 2N), minY, maxY, 15Ticks(modify = NoZero, step = 1), 16Arrow); 17/ 定义画笔定义画笔 18pen thinred = red + linewidth(0.5*linewidth(); 19/ 绘制横轴的网格绘制横轴的网格 20for(int i = minX; i = maxX; +i) 21xequals(i, minX, maxX, extend = true, p = thinred); 22 23/ 绘制纵轴的网格绘制纵轴的网格 24for(int i = minY; i = maxY; +i) 25yequals(i, minY, maxY, extend = true, p = thinred); 26 27/ 标记原点,位置西南标记原点,位置西南 28label($O$, origin, SW); 4数轴的绘制3 4数轴的绘制 大家可能有点儿奇怪,为什么数轴放在了平面直角坐标系的后面。因为我确实是先研究明白了平面直角坐标系的 绘制,才开始研究数轴的绘制,也算是做个补充。 4.1简单数轴的绘制 1050510 1/ 导入绘图模块导入绘图模块 2import graph; 3/ 设置尺寸,纵向不保持比例设置尺寸,纵向不保持比例 4size(5cm, 0); 5/ 绘制横轴,设定主、副刻度步长绘制横轴,设定主、副刻度步长 6xaxis(-10, 10, LeftTicks(Step = 5, step = 1), Arrow); 4.2数轴的高级绘制 1050510 1/ 导入绘图模块导入绘图模块 2import graph; 3/ 设置尺寸,纵向不保持比例设置尺寸,纵向不保持比例 4size(5cm, 0); 5/ 绘制横轴绘制横轴 6/ 设定主、副刻度步长、尺寸,颜色以及标签字体设定主、副刻度步长、尺寸,颜色以及标签字体 7xaxis(-10, 10, 8LeftTicks(Label(green + fontsize(5pt), 9Size = 2, size = 1, Step = 5, step = 1, 10pTick = red, ptick = blue), 11Arrow); 5点的绘制4 5点的绘制 5.1不同样式的点的绘制 y x O (2,3) B C P4 P3 P2 P1 P0 1/ 导入绘图模块导入绘图模块 2import graph; 3/ 导入几何模块导入几何模块 4import geometry; 5/ 设置尺寸设置尺寸 6size(5cm); 7/ 绘制横轴绘制横轴 8xaxis($x$, -5, 5, Arrow); 9/ 绘制纵轴绘制纵轴 10yaxis($y$, -5, 5, Arrow); 11/ 标记原点标记原点 12label($O$, origin, NW); 13/ 定义数对定义数对 14pair A = (2, 3), B = (4, 2), C = (3, 0); 15/ 绘制点,默认显示坐标值绘制点,默认显示坐标值 16dot(, A); 17/ 绘制点,自定义标签绘制点,自定义标签 18dot($B$, B, NE); 19/ 绘制点,空心点,红色绘制点,空心点,红色 20dot($C$, C, NE, red, UnFill); 21/ 绘制一系列的点绘制一系列的点 22for(int i = -4; i = 0; +i) 23dot(Label(format($P_%d$, abs(i), (i, i), SE, blue); 24 6直线的绘制5 6直线的绘制 6.1过已知两点做直线 y x O A B 1/ 导入绘图模块导入绘图模块 2import graph; 3/ 导入几何模块导入几何模块 4import geometry; 5/ 设置尺寸设置尺寸 6size(5cm); 7/ 绘制横轴绘制横轴 8xaxis($x$, -5, 5, Arrow); 9/ 绘制纵轴绘制纵轴 10yaxis($y$, -5, 5, Arrow); 11/ 标记原点标记原点 12label($O$, origin, SW); 13/ 定义数对定义数对 14pair A = (2, 3), B = (4, 2); 15/ 绘制点绘制点 16dot($A$, A, NE); 17dot($B$, B, NE); 18/ 定义直线定义直线 19line AB = line(A, B); 20/ 绘制直线绘制直线 21draw(AB, red); 6.2绘制直线方程定义的直线以及求交点 y x O 1 2x y + 2 = 0 y = 5x 4 P 1/ 导入绘图模块导入绘图模块 2import graph; 3/ 导入几何模块导入几何模块 4import geometry; 5/ 设置尺寸设置尺寸 6size(5cm); 7/ 绘制横轴绘制横轴 8xaxis($x$, -5, 5, Arrow); 9/ 绘制纵轴绘制纵轴 10yaxis($y$, -5, 5, Arrow); 11/ 标记原点标记原点 12label($O$, origin, SW); 13/ 定义直线:一般式定义直线:一般式 14line line1 = line(1/2, -1, 2); 15/ 定义直线:斜截式定义直线:斜截式 16line line2 = line(5, -4); 17/ 绘制直线绘制直线 18draw($frac12x -y + 2 = 0$,line1, red); 19draw($y = 5x - 4$, line2, blue); 20/ 求交点求交点 21pair P = intersectionpoint(line1, line2); 22/ 绘制交点绘制交点 23dot($P$, P, SE); 6直线的绘制6 6.3过一点做已知直线的平行线和垂线 y x O A B C l m m.B 1/ 导入绘图模块导入绘图模块 2import graph; 3/ 导入几何模块导入几何模块 4import geometry; 5/ 设置尺寸设置尺寸 6size(5cm); 7/ 绘制横轴绘制横轴 8xaxis($x$, -5, 5, Arrow); 9/ 绘制纵轴绘制纵轴 10yaxis($y$, -5, 5, Arrow); 11/ 标记原点标记原点 12label($O$, origin, SW); 13/ 定义三点并绘制定义三点并绘制 14pair A = (-3, -2), B = (1, -1), C = (2, 2); 15dot($A$, A, S); 16dot($B$, B, S); 17dot($C$, C, NE); 18/ 定义直线并绘制定义直线并绘制 19line AB = line(A, B); 20draw(AB); 21/ 过直线外一点做平行线过直线外一点做平行线 22line l = parallel(C, AB); 23draw($l$, l, blue); 24/ 过一点做直线的垂线过一点做直线的垂线 25line m = perpendicular(A, AB); 26draw($m$, m, red); 27/ 标记直角标记直角, 28dot($m.B$, m.B, NE, brown); 29markrightangle(m.B, A, B); 7线段的绘制7 7线段的绘制 7.1基本线段的绘制及标记中点 y x O A B M 1/ 导入绘图模块导入绘图模块 2import graph; 3/ 导入几何模块导入几何模块 4import geometry; 5/ 设置尺寸设置尺寸 6size(5cm); 7/ 绘制横轴绘制横轴 8xaxis($x$, -5, 5, Arrow); 9/ 绘制纵轴绘制纵轴 10yaxis($y$, -5, 5, Arrow); 11/ 标记原点标记原点 12label($O$, origin, NW); 13/ 定义两点并绘制定义两点并绘制 14pair A = (-3, -3), B = (2, 2); 15dot($A$, A, S); 16dot($B$, B, S); 17/ 绘制线段绘制线段 18draw(A - B, blue); 19/ 求中点求中点 20pair M = midpoint(A - B); 21dot($M$, M, S, red); 7线段的绘制8 7.2高级线段的绘制及定比分点 y x O AB CD = 1 3 1/ 导入绘图模块导入绘图模块 2import graph; 3/ 导入几何模块导入几何模块 4import geometry; 5/ 设置尺寸设置尺寸 6size(5cm); 7/ 绘制横轴绘制横轴 8xaxis($x$, -5, 5, Arrow); 9/ 绘制纵轴绘制纵轴 10yaxis($y$, -5, 5, Arrow); 11/ 标记原点标记原点 12label($O$, origin, SW); 13/ 定义点并绘制封闭图形定义点并绘制封闭图形 14pair A = (-3, -3), B = (3, -3), C = (3, 3), D = (-3, 3) ; 15draw(A - B - C - D - cycle); 16dot($A$, A, SW); 17dot($B$, B, SE); 18dot($C$, C, NE); 19dot($D$, D, NW); 20/ 求定比分点并绘制求定比分点并绘制 21real t = 1/3; 22pair E = interp(A, B, t); 23pair F = interp(B, C, t); 24pair G = interp(C, D, t); 25pair H = interp(D, A, t); 26draw(E - F - G - H - cycle, blue); 27arrow($lambda = frac13$, E, SE, red); 8角的绘制9 8角的绘制 8.1基本角的绘制 y x O 1/ 导入绘图模块导入绘图模块 2import graph; 3/ 导入几何模块导入几何模块 4import geometry; 5/ 设置尺寸设置尺寸 6size(5cm); 7/ 绘制横轴绘制横轴 8xaxis($x$, -5, 5, Arrow); 9/ 绘制纵轴绘制纵轴 10yaxis($y$, -5, 5, Arrow); 11/ 标记原点标记原点 12label($O$, origin, SW); 13/ 定义角的顶点以及两边上的点定义角的顶点以及两边上的点 14pair A = (3, 2), B = (-3, -1), C = (3, -1); 15/ 构造角的两边并绘制,注意射线的画法构造角的两边并绘制,注意射线的画法 16line BA = line(B, false, A); 17line BC = line(B, false, C); 18draw(BA, red); draw(BC, red); 19/ 标记角标记角 20real markradius = 0.5 * markangleradius(); 21markangle($alpha$, C, B, A, 22radius = markradius, red); 8角的绘制10 8.2绘制给定大小的角以及角平分线 y x O 1/ 导入绘图模块导入绘图模块 2import graph; 3/ 导入几何模块导入几何模块 4import geometry; 5/ 设置尺寸设置尺寸 6size(5cm); 7/ 绘制横轴绘制横轴 8xaxis($x$, -5, 5, Arrow); 9/ 绘制纵轴绘制纵轴 10yaxis($y$, -5, 5, Arrow); 11/ 标记原点标记原点 12label($O$, origin, SW); 13/ 定义角的度数、顶点、以及水平边上的点定义角的度数、顶点、以及水平边上的点 14real d = 55; 15pair B = (-3, -1), C = (3, -1); 16/ 算出另一边上的一点算出另一边上的一点 17pair A = rotate(d, B) * C; 18/ 绘制角绘制角 19line BA = line(B, false, A); 20line BC = line(B, false, C); 21draw(BA, red); draw(BC, red); 22/ 绘制角平分线绘制角平分线 23line bis = bisector(BA, BC); 24draw(bis, blue); 25/ 标记标记 26marker mark1=StickIntervalMarker(2, 2, blue); 27markangle(C, B, A, blue, mark1); 9多边形的绘制11 9多边形的绘制 9.1三角形的绘制 9.1.1已知三边绘制三角形 y x O 1/ 导入绘图模块导入绘图模块 2import graph; 3/ 导入几何模块导入几何模块 4import geometry; 5/ 设置尺寸设置尺寸 6size(5cm); 7/ 绘制横轴绘制横轴 8xaxis($x$, -5, 5, Arrow); 9/ 绘制纵轴绘制纵轴 10yaxis($y$, -5, 5, Arrow); 11/ 标记原点标记原点 12label($O$, origin, SW); 13/ 定义三角形三边长度定义三角形三边长度 14real a = 5, b = 7, c = 6; 15/ 定义底边的一个顶点定义底边的一个顶点 16pair A = (-3, -2); 17/ 计算底边的另一个顶点计算底边的另一个顶点 18pair B = A + c; 19/ 分别以底边的两个顶点为圆心,对应边长为半径做弧并求交点分别以底边的两个顶点为圆心,对应边长为半径做弧并求交点, 20path arcA = arc(A, b, 0, 90); 21path arcB = arc(B, a, 90, 180); 22pair C = intersectionpoint(arcA, arcB); 23draw(arcA, red + dashed); 24draw(arcB, red + dashed); 25/ 绘制三角形绘制三角形 26draw(A - B - C - cycle, blue); 9多边形的绘制12 9.1.2已知两边和夹角绘制三角形 y x O 47 1/ 导入绘图模块导入绘图模块 2import graph; 3/ 导入几何模块导入几何模块 4import geometry; 5/ 设置尺寸设置尺寸 6size(5cm); 7/ 绘制横轴绘制横轴 8xaxis($x$, -5, 5, Arrow); 9/ 绘制纵轴绘制纵轴 10yaxis($y$, -5, 5, Arrow); 11/ 标记原点标记原点 12label($O$, origin, SW); 13/ 定义三角形两边以及夹角定义三角形两边以及夹角 14real b = 7, c = 6, alpha = 47; 15/ 定义底边的一个顶点定义底边的一个顶点 16pair A = (-3, -2); 17/ 计算底边的另一个顶点计算底边的另一个顶点 18pair B = A + c; 19/ 计算第三个顶点;计算第三个顶点; 20pair C = rotate(alpha, A) * (A + b); 21/ 绘制三角形绘制三角形 22draw(A - B - C - cycle, blue); 23/ 标记已知角标记已知角 24real markradius = 0.5 * markangleradius(); 25markangle($47circ$, B, A, C, 26radius = markradius, red); 9多边形的绘制13 9.1.3已知两角和所夹边绘制三角形 y x O 47 55 1/ 导入绘图模块导入绘图模块 2import graph; 3/ 导入几何模块导入几何模块 4import geometry; 5/ 设置尺寸设置尺寸 6size(5cm); 7/ 绘制横轴绘制横轴 8xaxis($x$, -5, 5, Arrow); 9/ 绘制纵轴绘制纵轴 10yaxis($y$, -5, 5, Arrow); 11/ 标记原点标记原点 12label($O$, origin, SW); 13/ 定义三角形两角以及夹边定义三角形两角以及夹边 14real alpha = 47, beta = 55, c = 6; 15/ 定义底边的一个顶点定义底边的一个顶点 16pair A = (-3, -2); 17/ 计算底边的另一个顶点计算底边的另一个顶点 18pair B = A + c; 19/ 构造两底角的另一边构造两底角的另一边 20line line_c = line(A, B); 21line line_b = rotate(alpha, A) * line_c; 22line line_a = rotate(-beta, B) * line_c; 23/ 求三角形第三个定点求三角形第三个定点 24pair C = intersectionpoint(line_a, line_b); 25draw(A - B - C - cycle, blue); 26/ 标记已知角标记已知角 27real markradius = 0.5 * markangleradius(); 28markangle($47circ$, B, A, C, 29radius = markradius, red); 30markangle($55circ$, C, B, A, 31radius = markradius, red); 10有关圆的绘制14 10有关圆的绘制 10.1已知圆心和半径绘制圆 y x O O1 1/ 导入绘图模块导入绘图模块 2import graph; 3/ 导入几何模块导入几何模块 4import geometry; 5/ 设置尺寸设置尺寸 6size(5cm); 7/ 绘制横轴绘制横轴 8xaxis($x$, -5, 5, Arrow); 9/ 绘制纵轴绘制纵轴 10yaxis($y$, -5, 5, Arrow); 11/ 标记原点标记原点 12label($O$, origin, SW); 13/ 定义圆心定义圆心 14pair O1 = (1, -1); 15/ 定义半径定义半径 16real r = 2; 17/ 绘制圆绘制圆 18draw(circle(O1, r), blue); 19/ 标记圆心标记圆心 20dot($O_1$, O1, blue); 10有关圆的绘制15 10.2过圆上一点做圆的切线 y x O O1 A l 1/ 导入绘图模块导入绘图模块 2import graph; 3/ 导入几何模块导入几何模块 4import geometry; 5/ 设置尺寸设置尺寸 6size(5cm); 7/ 绘制横轴绘制横轴 8xaxis($x$, -5, 5, Arrow); 9/ 绘制纵轴绘制纵轴 10yaxis($y$, -5, 5, Arrow); 11/ 标记原点标记原点 12label($O$, origin, SW); 13/ 绘制圆绘制圆 14pair O1 = (2, -1); 15real r = 2; 16draw(circle(O1, r), blue); 17/ 标记圆心标记圆心 18dot($O_1$, O1, blue

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论