javafx直线类Line

Line

Line继承与Shape,而Shape继承与Node,对于Node的子类,都可以设置基本的监听器,鼠标事件和键盘事件,当然样式设置也是有的。

圆线图

在这里插入图片描述

同心自旋线图

所以线都围饶通一个中心点,并切伴有自旋,所以我给取了名称。
如果加上离心率那便是离心自旋线图
(想在百度上找几个有趣的数学函数图像,结果千篇一律的就哪几个,还不如自己制作。)
给出定义:
radian属于0-π
k=f(radian)
y-rsin(radian)=k(x-rcos(radian))
在这里插入图片描述

对应的一个离心自旋线图

在这里插入图片描述

代码

public class JacobLine extends Application{
	public static void main(String[] args) {launch();}
    public void start(Stage primaryStage) throws Exception {
    	Pane pane = createPane();
        primaryStage.setScene(new Scene(pane));
        primaryStage.setWidth(900);
        primaryStage.setHeight(900);
        primaryStage.setTitle("Line ");
        primaryStage.show();
    }
	private Pane createPane() {
		Pane pane=new Pane();
		Line line = null;
		for(int radi=0;radi<360;radi+=1) {
			line=new Line();
			line.setStartX(400f);
			line.setStartY(0f);
			line.setEndX(400.0f);
			line.setEndY(800.0f);
			line.setRotate(radi/Math.PI*180);
			line.setLayoutX(100*Math.cos(radi));
			line.setLayoutY(100*Math.sin(radi));
			pane.getChildren().add(line);
		}
		for(int i=0;i<pane.getChildren().size();i+=1) {
			if(i%2==0) {
				((Line)(pane.getChildren().get(i))).setStroke(Color.color(i/360,0.5, 0.5));
			}else {
				((Line)(pane.getChildren().get(i))).setStroke(Color.color(1-i/360,0.5, 0.3));
			}
		}
		pane.setLayoutY(30);
		pane.setLayoutX(50);
		return pane;
	}

}

通过设置平移和旋转的角度可以的到许多有趣的图形

(默认顺时针旋转)

不旋转

//	line.setRotate(radi/Math.PI*180);
	line.setLayoutX(100*Math.cos(radi));
	line.setLayoutY(100*Math.sin(radi));

得到一个柱体

在这里插入图片描述

设置透明度

	line.setOpacity(0.5);

在这里插入图片描述

将颜色关掉,便于观察

我感觉在质数点出现奇异形状较高

	line.setRotate(radi);

在这里插入图片描述

	line.setRotate(180-radi);

在这里插入图片描述

	line.setRotate(radi*0.01);

在这里插入图片描述

	line.setRotate(radi*0.1);

在这里插入图片描述

	line.setRotate(radi*0.2);

在这里插入图片描述

	line.setRotate(radi*0.25);

在这里插入图片描述

	line.setRotate(radi*0.3);

在这里插入图片描述

	line.setRotate(radi*0.5);

在这里插入图片描述

	line.setRotate(radi);

在这里插入图片描述

	line.setRotate(2*radi);

在这里插入图片描述

	line.setRotate(radi*3);

在这里插入图片描述

	line.setRotate(radi*4);

在这里插入图片描述

		line.setRotate(radi*7);

在这里插入图片描述

	line.setRotate(radi*8);

在这里插入图片描述

	line.setRotate(radi*9);

在这里插入图片描述

	line.setRotate(radi*13);

在这里插入图片描述

	line.setRotate(radi*15);

在这里插入图片描述

	line.setRotate(radi*16);

在这里插入图片描述

	line.setRotate(radi*17);

在这里插入图片描述

	line.setRotate(radi*19);

在这里插入图片描述

	line.setRotate(radi*31);

在这里插入图片描述

	line.setRotate(radi*120);

在这里插入图片描述

	line.setRotate(radi*133);

在这里插入图片描述

	line.setRotate(radi*313);

(和上图一样,并不是截错了)
在这里插入图片描述

	line.setRotate(radi*317);

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_39464369/article/details/89576102