定义: 数学上,利萨茹(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() {});
效果图: