codecamp

JavaFX 曲线

JavaFX教程 - JavaFX曲线


立方曲线

要创建三次曲线,请使用适当的构造函数。

一个三次曲线的主要参数设置是startX,startY,controlX1(控制点1X),controlY1(控制点1Y),控制X2(控制点2X)和控制Y2(控制点2Y),endX,endY。

startX,startY,endX和endY参数是曲线的起点和终点。controlX1,controlY1,controlX2和controlY2是控制点。

控制点(控制X1,控制Y1)影响线段在起点(startX,startY)和线的中点之间。

控制点(controlX2,controlY2)影响线段在线的中点和其终点(endX,endY)之间。

控制点将曲线拉向自身的方向。

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.CubicCurve;
import javafx.stage.Stage;

public class Main extends Application {
  public static void main(String[] args) {
    launch(args);
  }

  @Override
  public void start(Stage stage) {
    stage.setTitle("ComboBoxSample");
    Scene scene = new Scene(new Group(), 450, 250);

    CubicCurve cubic = new CubicCurve();
    cubic.setStartX(0.0f);
    cubic.setStartY(50.0f);
    cubic.setControlX1(25.0f);
    cubic.setControlY1(0.0f);
    cubic.setControlX2(75.0f);
    cubic.setControlY2(100.0f);
    cubic.setEndX(100.0f);
    cubic.setEndY(50.0f);
 

    Group root = (Group) scene.getRoot();
    root.getChildren().add(cubic);
    stage.setScene(scene);
    stage.show();
  }
}

上面的代码生成以下结果。

null

QuadCurve

javafx.scene.shape.QuadCurve 类与三次曲线类似。代替两个控制点,我们只有一个控制点为QuadCurve。

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.shape.QuadCurve;
import javafx.stage.Stage;

public class Main extends Application {
  @Override
  public void start(Stage stage) {
    Group root = new Group();
    Scene scene = new Scene(root, 300, 150);
    stage.setScene(scene);
    stage.setTitle("");


    QuadCurve quad = new QuadCurve();
    quad.setStartX(0.0f);
    quad.setStartY(50.0f);
    quad.setEndX(50.0f);
    quad.setEndY(50.0f);
    quad.setControlX(25.0f);
    quad.setControlY(0.0f);
    
    root.getChildren().add(quad);

    scene.setRoot(root);
    stage.show();
  }

  public static void main(String[] args) {
    launch(args);
  }
}

上面的代码生成以下结果。

null


JavaFX 多边形折线
JavaFX 颜色
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

JavaFX 效果

JavaFX 主题

JavaFX 转换

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }