返回列表 回复 发帖

再作滚动的椭圆

上次做的滚椭圆,zhchgao老师提出不是正在的滚椭圆,后来想了想,应该借助椭圆弧长,才可做出正在意义上的滚动,但椭圆弧长不好求,故采用了近似迭代的方法求弧长,不知老师们还有没有别的方法
(只让椭圆滚了一个圈,如果想让椭圆一直滚下去,只需将旋转角改为直线控制,再调整迭代参数、切点的坐标和弧长的表达式即可)

滚动的椭圆.gsp (15.62 KB)

滚动的椭圆(优化).gsp (14.07 KB)

滚动的椭圆(最终版).gsp (14.29 KB)

,看了你的图,很简洁,为什么运行慢呢?
优化了一下:
将旋转角改为直线控制,可以滚动多圈,提高了椭圆弧长的精确度,并可自由设置精度(如果发现椭圆在滚动过程中有晃动现象,可提高精度,这点在椭圆离心率很大时尤其重要!)

滚动的椭圆.gsp (14.07 KB)

上面的优化,仅对a为长轴时比较精确,若b为长轴,当离心率大时,将不稳定,于是修改了参数n,从而适合一般情况。

滚动的椭圆(最终版).gsp (14.29 KB)

返回列表