有的时候,需要让点为整点,且可以自由移动。GeoGebra可以做到吗?
又或者可以说是让点隔着1个单位蹦来蹦去。那么,可以隔着2个单位或者3个单位地蹦吗?1/2、1/3个单位呢?
由图可以看到,GeoGebra可以做到这一效果!甚至是可以让点横向、纵向蹦的间隔单位不一致!
想知道是怎么做到的吗?
本文将提供多种方法,其中,河北李建军老师的方法将作为压轴出场!【非常感谢李老师的分享!】最后,还会拓展一下:如果点需限制在一定范围内,那么点如何蹦跶?
顺便提下实际应用,比如:固定周长的长方形的面积变化规律。
固定网格法
显示网格——固定网格,再作一个自由点。即可让点在主要网格的交点处移动。
网格默认比例是x:y=1:1,所以,上述做法可让点隔着1个单位蹦跶。
如果要让点隔着2个单位地蹦,只需修改网格的刻度间距:
隔着3个、4个……单位地蹦,同理
又比如,横向间隔3个单位、纵向间隔2个单位:
间隔小于1个单位也可以做到!比如,间隔1/3个单位:
描点法
思路:
- 点需要落在哪些点上,就做出这些点;
- 再用描点(Point)指令,所得点即可蹦来蹦去。
以点隔着1个单位蹦跶为例:
l1 = 序列(序列((p, q), p, 0, 8), q, 0, 8)
A = 描点(l1)
注:序列(Sequence)。
若要让间隔为2,3,1/2,1/3等,只需更改序列指令中的增量参数。
序列( <表达式>, <变量>, <起始值>, <终止值>, <增量> )
(若不写增量,增量默认为1)
比如,横向间隔0.5,纵向间隔2:
动态坐标法
用动态坐标(DynamicCoordinates)指令。
动态坐标( <点>, <横坐标x>, <纵坐标y> )
以得到整点B为例:
- 先作出自由点A
- 再作点B=动态坐标(A, round(x(A)), round(y(A)))
这个指令很有意思!由B的定义,可看到B是依托A,但却可以直接移动B!
这是隔着1个单位地蹦跶。那么,隔着2或3,1/2,1/3个单位呢?
你能想到什么方法吗?
不妨先看李建军老师分享的方法!
赋值法
以得到整点A为例:
- 先作自由点A
- 再在A的更新时脚本写上:赋值(A,round(A))
注:赋值(SetValue)。
这么一看,用赋值指令比动态坐标指令简洁吧!
- 动态坐标必须给出横坐标、纵坐标,例:动态坐标(A, round(x(A)), round(y(A)))
- 而赋值指令的话,当对横、纵坐标进行的操作一致时,可以一次性搞定:赋值(A,round(A))
这是隔着1个单位地蹦跶。
重点来啦!若是隔着2个单位呢?
只需更改A的更新时脚本为:赋值(A,2 round(A/2))
也就是让A的横、纵坐标先除以2,再四舍五入,最后乘以2。
又比如,横向间隔1/2,纵向间隔2:
赋值(A, (1/2 round(2 x(A)), 2 round(y(A)/2)))
拓展
如果点需限制在一定范围内,那么点如何蹦跶?
例如:点只能在多边形((0, 0), (5, 0), 4)内部或边上,且由(0,0)开始隔着2个单位地蹦跶。
若用描点法,可以在构造所有点的时候,将范围也考虑上:
若用赋值法,有两种方法。
方法一(从A的更新时脚本入手):
A = 内点(多边形((0, 0), (5, 0), 4))
A的更新时脚本:赋值(A,2round((A - 0.0001) / 2))
若横做坐标或纵坐标为5,会让A跑到多边形外
注:内点(PointIn)、多边形(Polygon)。
方法二(从A的定义入手):
A = 内点(多边形((0, 0), (4, 0), 4))
A的更新时脚本:赋值(A,2 round(A/2))
声明:易商讯尊重创作版权。本文信息搜集、整理自互联网,若有来源标记错误或侵犯您的合法权益,请联系我们。我们将及时纠正并删除相关讯息,非常感谢!