在Geogebra中打造生成五角星的宏用于五星红旗
引子
在Geogebra中也提供了自定义按钮或类似宏的功能。虽然简单,但是容易忘记,所以,找一个例子记录下来以备不时之需。
准备
学习新东西,最好是从理解和解决实际问题实际案例入手,比较好的例子是用Geogebra绘制一幅五星红旗。从网络上找到五星红旗设计草图如下,包括长宽比例,星的位置和方向等详细信息。
分析
从图上发现:
- 五星红旗长和宽的比例是30:20;
- 有五星的区域仅占左上角的1/4相似矩形;
- 大五星外接圆半径如果是3,小五星外接圆半径为1;
- 所有五星的外接圆圆心易定,都是整数格点位置;
- 四个小五星都有一个角是正对大五星中心的,但角度不易表达;
综上看繁琐之处在于五角星的绘制是多次重复的操作,它们的共同点是:
- 外接圆中心为整数格点;
- 外接圆半径也是整数比例;
- 其中一个角的方向向量容易确定,但角度可能为无理数
宏的制作
输入参数确定
从而,决定如果制作一个绘制五角星的宏,那么,它的三个输入参数应该是:
- 外接圆心;
- 其中一个角的方向;
- 外接圆半径。
绘制过程
先在一般意义下绘制这样的一个五角星:
- 绘制外接圆心
- 任意绘制另外一点
- 创建一个数字量,比如
- 然后以
Rotate[a,2 Pi/5,A]
- 求五条射线与外接圆的五个交点,如下图
隐藏辅助的射线和外接圆,对五个点中不相邻的点创建两两连接的直线或线段,作出它们的交点,如下图所示:
隐藏线段,连接五角星的十条边得到多边形如图:
隐藏辅助的点和标签,对多边形作颜色填充和修饰。完成五角星绘制。如图:
生成模板(宏,ggt)文件
- 选取菜单栏Tools>Create New Tool 命令单击:
- 弹出对话框:
在Output Objects中选择最终要的polygon,即五角星
在Input Objects中按照顺序选择
A ,B 和数字r 最后命名,并写提示信息,点Finish:
还可添加自定义的图片作为该宏的图片。默认则为扳手形状。勾选了Show in toolbar之后,在工具栏会多出一个新按钮:
选择菜单命令Tools>Manage Tools
弹出对话框,Save As 按钮可以把它保存为单独的ggt文件:
该ggt文件可以在新建的GGB文件中打开,作为单独的用户自定义工具使用。至此就完成了。