Вы должны правильно вычислить математику, но что-то вроде этого - то, что я имел в виду. Вы даже можете попытаться просто оставить контрольную точку Y в середине линии, я переместил ее, так как понял, что она более реалистична, так как она начнет сгибаться внизу. Вы также должны сделать некоторое исчисление, чтобы выяснить конечную точку. Длина не должна изменяться.
package curve;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Slider;
import javafx.scene.paint.Color;
import javafx.scene.shape.QuadCurve;
import javafx.stage.Stage;
public class Curve extends Application {
@Override
public void start(Stage primaryStage) {
QuadCurve qc = new QuadCurve(100, 500, 100, 250, 100, 0);
qc.setStroke(Color.BLUE);
qc.setStrokeWidth(5);
qc.setFill(Color.TRANSPARENT);
Slider slider = new Slider(0, 200, 0);
qc.endXProperty().bind(slider.valueProperty().add(100));
qc.endYProperty().bind(slider.valueProperty().add(100).divide(1.2));
qc.controlYProperty().bind(slider.valueProperty().multiply(-1).add(500));
Group group = new Group(qc,slider);
Scene scene = new Scene(group, 500,500);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
Я хотел бы использовать https://docs.oracle.com/javase/8/javafx/api/javafx/scene/shape/CubicCurve.html. Надеюсь, вам не нужны все эти удары в строке, это было бы сложно – brian
Я просмотрел всю документацию по их API, проблема в том, где установить контрольные точки? И нет, удары не нужны –
Извините, что я имел в виду QuadQurve, и вам нужно будет перемещать как контрольную, так и конечную точки при перемещении ползунка. – brian