码迷,mamicode.com
首页 > 其他好文 > 详细

在Geogebra中制作生成五角星的宏用于五星红旗

时间:2015-05-28 23:12:22      阅读:634      评论:0      收藏:0      [点我收藏+]

标签:geogebra

引子

在Geogebra中也提供了自定义按钮或类似宏的功能。虽然简单,但是容易忘记,所以,找一个例子记录下来以备不时之需。

准备

学习新东西,最好是从理解和解决实际问题实际案例入手,比较好的例子是用Geogebra绘制一幅五星红旗。从网络上找到五星红旗设计草图如下,包括长宽比例,星的位置和方向等详细信息。
技术分享

分析

从图上发现:

  • 五星红旗长和宽的比例是30:20;
  • 有五星的区域仅占左上角的1/4相似矩形;
  • 大五星外接圆半径如果是3,小五星外接圆半径为1;
  • 所有五星的外接圆圆心易定,都是整数格点位置;
  • 四个小五星都有一个角是正对大五星中心的,但角度不易表达;

综上看繁琐之处在于五角星的绘制是多次重复的操作,它们的共同点是:
- 外接圆中心为整数格点;
- 外接圆半径也是整数比例;
- 其中一个角的方向向量容易确定,但角度可能为无理数

宏的制作

输入参数确定

从而,决定如果制作一个绘制五角星的宏,那么,它的三个输入参数应该是:
- 外接圆心;
- 其中一个角的方向;
- 外接圆半径。

绘制过程

先在一般意义下绘制这样的一个五角星:
- 绘制外接圆心A,
- 任意绘制另外一点B, 以射线AB作为其中一个角方向;
- 创建一个数字量,比如r=1作为外接圆半径;
- 然后以A为中心、72°或25π为角度间隔旋转射线AB,得到均匀分布的五射线;求五条射线与外接圆的五个交点,如下图

技术分享

  • 隐藏辅助的射线和外接圆,对五个点中不相邻的点创建两两连接的直线或线段,作出它们的交点,如下图所示:
    技术分享

  • 隐藏线段,连接五角星的十条边得到多边形如图:
    技术分享

  • 隐藏辅助的点和标签,对多边形作颜色填充和修饰。完成五角星绘制。如图:
    技术分享

生成模板(宏,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文件中打开,作为单独的用户自定义工具使用。至此就完成了。

用自定义的宏工具制作的五星红旗

技术分享

在Geogebra中制作生成五角星的宏用于五星红旗

标签:geogebra

原文地址:http://blog.csdn.net/stereohomology/article/details/46136833

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!