level 12
朱老剑客
楼主
前一段时间挖坟,https://tieba.baidu.com/p/3119327916,我说现在MC吧还有三个没解决的问题,其中有一个就是包络计算。后来在Inside Mathcad里找到了对散点计算包络的例程。嗯,可能散点包络是最容易的情况吧,不用算切点和切线,也不用对点进行平滑或者插值。
我记得前年的国际奥数竞赛的高中组第一题(还是国内奥数竞赛?我忘了)就是让小朋友们给出一个散点包络的算法。
原题我记不太清了,大概是这样的:
2D空间中有随机N个点,同时空间中有一条直线L,直线与N个点中其中一个点A相交。然后L以A为支点按逆时针旋转,直至接触到下一个点B,再以B为支点逆时针旋转,问L的运动轨迹共有几种情况,在这几种情况中,是否存在L遍历N个点的情况。
这道题太难,反正我最后看答案也没看懂。不过呢,这确实是“包络算法”的基础问题。所以,我在这里出这么一道题:
请用MC动画模拟出上题中至少两种L运动的轨迹。
除了上题中提到的条件外,我再补充几个:
(1)不限制L运动的角速度及角加速度;
(2)一个动画中,L至少要经过10个点(即L与点相交接触的这个动作发生至少10次。如果L在若干点上发生了循环运动,则需要让L与点的累积接触次数至少达到10次——比如说L在3个点上发生了循环运动,则需要让L绕这3个点运动3圈);
(3)添加计数器,每当接触一个点,计数器n=n+1——L初始接触的第1个点,计数器n=1;
(4)除L运动外,请在动画中绘制出L上某一定点(该点与L无相对运动)的完整运动轨迹。
另外,还有一件事儿得告诉各位,昨天我去复查脚,医生说可以进行康复运动了,所以近几天我可能上网较少,而之后我就得上班了,三个月的活儿压着呢,恐怕没有太多时间来吧里玩儿了,还望各位MC吧的朋友们发扬主人翁意识,谁在这里玩儿MC谁就是老大,别让MC吧冷下来——这是国内硕果仅存的MC战线了。 :)
2014年07月15日 19点07分
1
我记得前年的国际奥数竞赛的高中组第一题(还是国内奥数竞赛?我忘了)就是让小朋友们给出一个散点包络的算法。
原题我记不太清了,大概是这样的:
2D空间中有随机N个点,同时空间中有一条直线L,直线与N个点中其中一个点A相交。然后L以A为支点按逆时针旋转,直至接触到下一个点B,再以B为支点逆时针旋转,问L的运动轨迹共有几种情况,在这几种情况中,是否存在L遍历N个点的情况。
这道题太难,反正我最后看答案也没看懂。不过呢,这确实是“包络算法”的基础问题。所以,我在这里出这么一道题:
请用MC动画模拟出上题中至少两种L运动的轨迹。
除了上题中提到的条件外,我再补充几个:
(1)不限制L运动的角速度及角加速度;
(2)一个动画中,L至少要经过10个点(即L与点相交接触的这个动作发生至少10次。如果L在若干点上发生了循环运动,则需要让L与点的累积接触次数至少达到10次——比如说L在3个点上发生了循环运动,则需要让L绕这3个点运动3圈);
(3)添加计数器,每当接触一个点,计数器n=n+1——L初始接触的第1个点,计数器n=1;
(4)除L运动外,请在动画中绘制出L上某一定点(该点与L无相对运动)的完整运动轨迹。
另外,还有一件事儿得告诉各位,昨天我去复查脚,医生说可以进行康复运动了,所以近几天我可能上网较少,而之后我就得上班了,三个月的活儿压着呢,恐怕没有太多时间来吧里玩儿了,还望各位MC吧的朋友们发扬主人翁意识,谁在这里玩儿MC谁就是老大,别让MC吧冷下来——这是国内硕果仅存的MC战线了。 :)
