如何使用 JavaFX 创建二次贝塞尔曲线?


二次曲线是 XY 平面中度数为 2 的贝塞尔参数曲线。

在 JavaFX 中,圆形由 **javafx.scene.shape.QuadCurve** 类表示。它类似于 CubicCurve,但它不是使用 2 个控制点,而是使用一个控制点绘制。

此类包含 6 个属性,它们是:

  • **startX** - 此属性表示曲线起点的 x 坐标。您可以使用 **setStartX()** 方法为此属性设置值。

  • **startY** - 此属性表示曲线起点的 y 坐标。您可以使用 **setStartY()** 方法为此属性设置值。

  • **controlX** - 此属性表示曲线控制点的 x 坐标。您可以使用 **setControlX()** 方法为此属性设置值。

  • **controlY** - 此属性表示曲线控制点的 y 坐标。您可以使用 **setControlY()** 方法为此属性设置值。

  • **endX** - 此属性表示曲线终点的 x 坐标。您可以使用 **setEndX()** 方法为此属性设置值。

  • **endY** - 此属性表示曲线终点的 y 坐标。您可以使用 **setEndY()** 方法为此属性设置值。

要创建圆形,您需要:

  • 实例化此类。

  • 使用 setter 方法设置所需的属性,或者将它们作为参数传递给构造函数。

  • 将创建的节点(形状)添加到 Group 对象。

示例

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
import javafx.scene.shape.QuadCurve;
public class DrawingQuadCurve extends Application {
   @Override
   public void start(Stage stage) {
      //Drawing a quadratic curve
      QuadCurve qudraticCurve = new QuadCurve();
      //Setting properties to cubic curve
      qudraticCurve.setStartX(75.0f);
      qudraticCurve.setStartY(75.0f);
      qudraticCurve.setControlX(250.0f);
      qudraticCurve.setControlY(250.0f);
      qudraticCurve.setEndX(500.0f);
      qudraticCurve.setEndY(260.0f);
      //Setting other properties
      qudraticCurve.setFill(Color.CHOCOLATE);
      qudraticCurve.setStrokeWidth(8.0);
      qudraticCurve.setStroke(Color.BROWN);
      //Setting the scene object
      Group root = new Group(qudraticCurve);
      Scene scene = new Scene(root, 595, 300);
      stage.setTitle("Drawing a quadratic curve");
      stage.setScene(scene);
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}

输出

更新时间: 2020-04-14

181 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告