Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package sample;
- import com.sun.scenario.effect.Color4f;
- import com.sun.scenario.effect.light.SpotLight;
- import javafx.application.Application;
- import javafx.event.EventHandler;
- import javafx.fxml.FXMLLoader;
- import javafx.geometry.VPos;
- import javafx.scene.*;
- import javafx.scene.effect.Light;
- import javafx.scene.effect.Lighting;
- import javafx.scene.input.KeyCode;
- import javafx.scene.input.KeyEvent;
- import javafx.scene.paint.Color;
- import javafx.scene.shape.CullFace;
- import javafx.scene.shape.Rectangle;
- import javafx.scene.text.Font;
- import javafx.scene.text.FontWeight;
- import javafx.scene.text.Text;
- import javafx.stage.Stage;
- import org.fxyz.scene.paint.Palette;
- import org.fxyz.shapes.composites.PolyLine3D;
- import org.fxyz.shapes.primitives.SpringMesh;
- import org.fxyz.shapes.primitives.Text3DMesh;
- import org.fxyz.utils.CameraTransformer;
- import java.awt.*;
- public class Main extends Application {
- public static final int WINDOW_WIDTH=1200;
- public static final int WINDOW_HEIGHT=800;
- @Override
- public void start(Stage primaryStage) throws Exception {
- PerspectiveCamera camera = new PerspectiveCamera(true);
- camera.setNearClip(0.1);
- camera.setFarClip(10000.0);
- camera.setTranslateX(0);
- camera.setTranslateZ(-500);
- camera.setFieldOfView(90);
- // AmbientLight light=new AmbientLight(Color.GOLD);
- // PointLight light=new PointLight(Color.GOLD);
- Light.Spot light = new Light.Spot();
- light.setX(150);
- light.setY(100);
- light.setZ(80);
- light.setPointsAtX(0);
- light.setPointsAtY(0);
- light.setPointsAtZ(-50);
- light.setSpecularExponent(2);
- Lighting lighting = new Lighting();
- lighting.setLight(light);
- lighting.setSurfaceScale(5.0);
- Text text = new Text();
- text.setText("Spot");
- text.setFill(Color.STEELBLUE);
- text.setFont(Font.font(null, FontWeight.BOLD, 80));
- text.setX(10.0);
- text.setY(10.0);
- text.setTextOrigin(VPos.TOP);
- text.setEffect(lighting);
- javafx.scene.shape.Rectangle rect = new Rectangle(200, 150);
- rect.setFill(Color.ALICEBLUE);
- rect.setEffect(lighting);
- CameraTransformer cameraTransform = new CameraTransformer();
- cameraTransform.getChildren().add(camera);
- cameraTransform.ry.setAngle(0);
- cameraTransform.rx.setAngle(0);
- Text3DMesh text3DMesh=new Text3DMesh("H");
- text3DMesh.setTranslateX(-WINDOW_WIDTH/2);
- text3DMesh.setTranslateY(-WINDOW_HEIGHT/2);
- text3DMesh.setEffect(lighting);
- // text3DMesh.setFont("helvetica");
- // text3DMesh.setTextureModeVertices3D(Palette.ColorPalette.GREEN,);
- // text3DMesh.setRotate(-15);
- Group group = new Group(cameraTransform,text3DMesh,text);
- Scene scene = new Scene(group, WINDOW_WIDTH, WINDOW_HEIGHT, true, SceneAntialiasing.BALANCED);
- scene.setFill(Color.BISQUE);
- scene.setCamera(camera);
- scene.setOnKeyTyped(new EventHandler<KeyEvent>() {
- @Override
- public void handle(KeyEvent event) {
- String ch=event.getCharacter();
- if(ch=="\r"){
- StringBuffer buffer = new StringBuffer(text3DMesh.getText3D());
- buffer.append("\n");
- text3DMesh.setText3D(buffer.toString());
- }
- if(ch.length()==0){
- if(!text3DMesh.getText3D().isEmpty()){
- StringBuffer buffer = new StringBuffer(text3DMesh.getText3D());
- text3DMesh.setText3D(buffer.substring(0,buffer.length()-1).toString());
- }
- } else {
- StringBuffer buffer = new StringBuffer(text3DMesh.getText3D());
- buffer.append(ch);
- text3DMesh.setText3D(buffer.toString());
- }
- }
- });
- primaryStage.setScene(scene);
- primaryStage.setTitle("Mini Word Art");
- primaryStage.show();
- }
- public static void main(String[] args) {
- launch(args);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment