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。

在线运行:launch

性质: 若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() {});

效果图:

源码地址

转载于:https://www.cnblogs.com/javafx/archive/2013/04/01/2992865.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值