javafx实现利萨茹(Lissajous)曲线动画

定义: 数学上,利萨茹(Lissajous)曲线(又称利萨茹图形或鲍迪奇(Bowditch)曲线)是两个沿着互相垂直方向的正弦振动的合成的轨迹。 利萨茹曲线由以下参数方程定义:x=asint,y=bsin(nt+φ)其中,0≤φ≤π/2,n≥1。n称为曲线的参数,是两个正弦振动的频率比。若比例为有理数,则n=p/q,参数方程可以写作:x=asin(pt),y=bcos(qt+φ) 0≤t≤2π,虚拟主机,其中0≤φ≤π/2p。

在线运行:

性质: 若n为无理数,曲线在长方形[-a,a]X[-b,b]中稠密。若n为有理数, n=p/q曲线是2q次代数曲线若φ∈(0,π/2p]对奇数p,或φ∈[0,π/2p)对偶数p。曲线是q次代数曲线的一部份若φ=0对奇数p,或φ=π/2p对偶数p。若n为偶数而,或若n为奇数而,则曲线是第n个切比雪夫多项式Tn的曲线的一部份。 历史: 纳撒尼尔·鲍迪奇在1815年首先研究这一族曲线,美国服务器,朱尔·利萨茹在1857年作更详细研究。  更多曲线 查看曲线列表 特别情况 若a=b,n=1,则曲线是椭圆。 若\phi=\frac{\pi}{2},香港服务器租用,则这椭圆其实是圆。 若\phi=0\,,则这椭圆其实是线段。 若a=b,n=q=2 (所以p=1),则曲线是besace。 若\phi=\frac{\pi}{2},则这besace是抛物线一部份。 若\phi=0\,,则这besace是一个热罗诺双纽线。

javafx实现思路: 以下实现n=1时的利萨茹(Lissajous)曲线。

1、定义以下变量:

DoubleProperty a = new SimpleDoubleProperty(2.0);DoubleProperty b = new SimpleDoubleProperty(3.0);DoubleProperty delta = new SimpleDoubleProperty(Math.PI);Slider aSlider;Slider bSlider;Slider deltaSlider;

用于绑定a,b,φ的值。以及3个slide控件

2、用Path path = new Path();描述曲线中的点。

3、用int points = 360;定义曲线中点的个数。

4、个每个Slider添加ChangeListener事件,用于重绘Lissajous曲线

aSlider.valueProperty().addListener(new ChangeListener() {});

效果图:

源码地址

去旅行不在于记忆,而在于当时的那份心情。

javafx实现利萨茹(Lissajous)曲线动画

相关文章:

你感兴趣的文章:

标签云: