先看下面的动画演示,你能给出答案吗?海龟-文末有制作教程

这就涉及到椭圆是怎么来的!

什么是椭圆——将圆拉伸 / 压扁?

椭圆的定义是什么?

椭圆的定义平面内与两个定点F1,F2的距离的和等于常数(大于|F1F2|)的点的轨迹叫做椭圆。

结合动画演示,看看什么是椭圆:画椭圆

通过动画演示,对椭圆就有直观形象的认识!

由此,一开始提出的问题,也随之得到解答!

所以,理解椭圆的定义,还可以换个角度想,很有趣——从点F1沿直线跑向椭圆上任何一点,再沿直线跑向点F2,其总距离都是一样的!

新问题来啦:|MF1|加上|MF2|怎样才能是一个定值?

解决这个问题,即有制作该动画的思路!

“画椭圆”的制作两线段的距离之和为定值,不妨考虑将两线段转化为在同一直线上

因为定值——可考虑圆,一个固定的圆,其半径为定值

等量的转化——考虑作中垂线,中垂线上的点,到线段两端点的距离相等

据此,我们可以写出指令:如需word版,请见作者个人介绍

同样,我们采取快捷的方法——直接复制所有指令,粘贴到GeoGebra按钮的脚本里:

可以看到生成的轨迹是椭圆,而且是整个显示。

那么,如何做到动态生成轨迹的效果?

划重点:

创建滑动条k',最小值为0,最大值为1;并在其更新脚本里输入:赋值(k,k')

将滑动条k的最大值改为:k'

这样做,拉动滑动条k’就有画椭圆的效果。

【这么做,可理解为:loc1 = 轨迹(M, k)由滑动条k控制,k的取值决定了M生成的轨迹。既然k为1时,可以生成完整的轨迹,那么控制k的最大值慢慢增大到1时,就可以让轨迹慢慢生成。】

如果想要通过按钮来控制轨迹的生成,只需创建按钮,其脚本为:

赋值(k',0)

启动动画(k')

自此就完成画椭圆的作品!

海龟效果的制作

海龟移动的效果是怎么制作的呢?

海龟( )

turtle( )

GeoGebra中,只需在指令栏输入海龟( ),敲完回车键,在绘图区原点(0,0)处便会显示一只海龟。

让海龟动的指令有前进(TurtleForward)、后退(TurtleBack)、左转(TurtleLeft)、右转(TurtleRight),具体语法为:前进( , )

后退( , )

左转( , )

右转( , )

所以,为了方便,我们把(0,0)作为椭圆的左焦点,也就是海龟的起点。

而海龟旋转的角度,可以用线段斜率(slope)的反正切值,或者用角度(angle)指令。

至于椭圆,不想输入椭圆方程,也可以用椭圆工具:

已有椭圆c,左、右焦点分别为A、B。于是,可以书写指令:如需word版,请见作者个人介绍

【备注:反正切用atand,返回角度,以度作为单位。而atan返回的角度,以弧度为单位。】

让海龟1、海龟2“动”的指令,我们分别写进按钮“海龟1演示”、“海龟2演示”的脚本里。

创建按钮“海龟1演示”,脚本为:

左转(海龟1,α)

前进(海龟1,距离(A,D))

右转(海龟1,β)

前进(海龟1,距离(B,D))

创建按钮“海龟2演示”,脚本为:

左转(海龟2,α1)

前进(海龟2,距离(A,E))

右转(海龟2,β1)

前进(海龟2,距离(B,E))

想多次演示,可创建按钮“复位”,脚本为:

删除(海龟1)

删除(海龟2)

海龟1 = 海龟()

海龟2 = 海龟()删除( )

删除(delete)指令:删除对象,及其从属对象。

这里用删除指令,再重新创建海龟。是因为新建的海龟就在我们要的起点处,书写起来也较为容易。

至此,海龟效果的制作就完成了,至于文本可以自行输入。

如需word版教程,请见作者个人介绍。

halcon中如何生成椭圆_教你动态生成椭圆,还教你怎么用海龟作图——GeoGebra制作教程...相关推荐

  1. mxOutlookBarPro中,button是通过for语句动态生成的,如何取得当前单击button的标题呢?...

    mxOutlookBarPro中,button是通过for语句动态生成的,如何取得当前单击button的标题呢? VCL组件开发及应用 http://www.delphi2007.net/Delphi ...

  2. java使用flex生成swf_flex动态生成矢量swf字体--java动态生成swf文件

    前言 相信很多在线设计的前端WEB应用会用到字体作为素材的案例,丰富多样的字体一般是部署在服务器端让用户去选择,而且能动态部署,使用客户端字体显然是不可取的: 现状 然而中文字体动不动就几个M,做过f ...

  3. python绘制反比例函数_描点法画反比例函数图像的动态演示——数学软件GeoGebra制作教程...

    Gif动态图又又又上传不成功了,建议跳转链接查看全文:描点法画反比例函数图像的动态演示--数学软件GeoGebra制作教程​www.toutiao.com 关于描点法画函数图像,前面已有三篇,包括以一 ...

  4. Java读取pdf模板,并动态生成pdf文件,如动态生成准考证

    Java读取pdf模板,并动态生成pdf文件,如动态生成准考证 ​ 前几天遇到了一个生成准考证的需求,并提供用户下载,然后百度了一圈还是觉得使用itextpdf这个框架好用点.但是还需要找到一个能创建 ...

  5. vue 嵌套表格组件_使用form-create动态生成vue自定义组件和嵌套表单组件

    使用form-create动态生成vue自定义组件和嵌套表单组件 maker.create 通过建立一个虚拟 DOM的方式生成自定义组件 生成 Maker let rule = [ formCreat ...

  6. layui图片上传按钮按着没反应_关于layui动态生成文件上传按钮后点击无效的解决办法...

    首先,这是一个坑,大坑,网上一大堆写的云里雾里,不知所以,转了一圈,除了copy就是copy,Jesus God,花了一晚上,走通了这个坑,话不多说,直接解决 layui版本: layui-v2.5. ...

  7. 根据时间戳生成编号_使用雪花算法生成流水号!

    前言"在分布式系统中常见的问题就是如何生成流水号,一般情况下会有专门的流水号系统,不过在开发过程中或者开发早期不一定会有专门流水号系统,在这里介绍下我所使用的流水号生成器--雪花算法&quo ...

  8. android唯一机器码生成方案_分布式系统唯一ID生成方案汇总

    系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结.生成ID的方法有很多,适应不同的场景.需求以及性能要求.所以有些比较复杂的系统会有多个ID生成的策略.下面就介绍一些常见 ...

  9. php如何生成一年的日历表_使用php动态生成一个日历,附源码。【简单实用】

    日历在web开发中是非常常用的一个功能,网上搜也能找到一大堆日历组件,大部分是js组件. 因为再开发过程中需要使用到日历的功能,又不想下载什么日历组件.所以就自己动手写了一个简单的php生成日历的功能 ...

最新文章

  1. python selenium脚本_怎样开始写第一个基于python的selenium脚本
  2. js实现审批流_超实用的工作流,小白用户也能轻松驾驭
  3. COM:养分平衡在塑造植物根-真菌互作中的作用:事实与猜想
  4. 所有顶点对最短路径问题(图的应用)
  5. bp神经网络算法步流程_基于遗传算法的BP神经网络优化算法模板
  6. 操作系统的初始化流程简图
  7. 公钥密码-非对称加密算法
  8. pylucene构建索引_pyLucene
  9. [BZOJ3173][Tjoi2013]最长上升子序列
  10. Python 为了提升性能,竟运用了共享经济!赶紧看看!!
  11. 妙笔生花!文字图像图形生成技术研究进展
  12. linux手动安装rsync_Linux中安装使用rsync | 学步园
  13. 导航 navigationbar 与 tabbar
  14. [linux] ab压测工具进行post压力测试
  15. 计算机控制液压同步顶升系统,变频控制同步顶升液压系统
  16. 论文阅读:A machine learning approach to medical image classification:Detecting age-related macular dege
  17. 计算机类文献综述如何写,应该如何撰写计算机类文献综述.doc
  18. 盘点国外知名量化基金
  19. java实现简单的 cs架构
  20. 计算机导航窗格里没有桌面,今天解决win10 导航窗格怎么添加桌面的解决环节

热门文章

  1. 计算机操作系统32位,计算机操作系统32位和64位的区别
  2. Paddle2.0 + CPM-LM:让AI帮你写文章吧
  3. java 剔除工作日计算超时时间
  4. 陕西省汉中市工信局副局长杨双武一行莅临云畅科技考察调研
  5. 怎么在电脑桌面上创建一个便签记事 方便用的时候及时打开
  6. P1000的使用感受
  7. android 中文开发文档
  8. java招投标管理系统的区别_招投标管理系统的特点和系统价值表现是怎么?
  9. MS5611气压传感器手册勘误
  10. 计算机大赛英语,计算机应用大赛英语课件Unit8.ppt