Command window results shows transformations
C:\ece538\JavaFX\circuit_dev>java MyGroup1 Translate [x=200.0, y=200.0, z=0.0] Scale [x=48.0, y=48.0, z=1.0, pivotX=0.0, pivotY=0.0, pivotZ=0.0] Create concatenated matrix? Scale [x=48.0, y=48.0, z=1.0, pivotX=-204.25531914893617, pivotY=-204.25531914893617, pivotZ=0.0]
and Bounds
BoundsInLocal BoundingBox [minX:-4.5, minY:-4.5, minZ:0.0, width:9.0, height:9.0, depth:0.0, maxX:4.5, maxY:4.5, maxZ:0.0] BoundsInParent BoundingBox [minX:-16.0, minY:-16.0, minZ:0.0, width:432.0, height:432.0, depth:0.0, maxX:416.0, maxY:416.0, maxZ:0.0]
MyGroup1.javaimport javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Group;
import javafx.scene.transform.Scale;
import javafx.scene.transform.Translate;
import javafx.scene.transform.Transform;
import javafx.scene.*;
import javafx.scene.paint.*;
import javafx.scene.shape.*;
import javafx.collections.*;
import java.util.ArrayList;
import java.lang.Math;
public class MyGroup1 extends Application {
public void start(Stage stage) {
Group grp = new Group();
Scene scene = new Scene(grp, 400, 400);
Translate tr = new Translate(scene.getWidth()/2,scene.getHeight()/2);
int res = 48; //98;
Scale scl = new Scale(res,res);
grp.getTransforms().addAll(tr,scl);
ObservableList<Transform> tlist = grp.getTransforms();
for (Transform t: tlist) System.out.println(t);
System.out.format("\nCreate concatenated matrix?\n");
Transform s = scl.createConcatenation(tr);
System.out.println(s);
ObservableList<Node> ol = grp.getChildren();
Color c = Color.rgb(220,200,255);
double u = 4.0;
ArrayList<Line> lines = new ArrayList<Line>();
Line nl;
for (int i=-4; i<=4; i++) {
double v = i;
nl = new Line(-u,v,u,v);
lines.add(nl);
ol.add(nl);
nl = new Line(v,-u,v,u);
lines.add(nl);
ol.add(nl);
}
for (Line ln: lines) {
ln.setStrokeWidth(1.0/res);
ln.setStroke(c);
}
// locate origin
//g2.setPaint(Color.BLACK);
u = 0.05;
nl = new Line(-u,u,u,-u);
nl.setStrokeWidth(1.0/res);
ol.add(nl);
nl = new Line(-u,-u,u,u);
nl.setStrokeWidth(1.0/res);
ol.add(nl);
System.out.format("\nBounds\n\n");
System.out.println("BoundsInLocal " + grp.getBoundsInLocal());
System.out.println("BoundsInParent " + grp.getBoundsInParent());
stage.setTitle("MyGroup1");
stage.setScene(scene);
stage.show();
}
}
Maintained by John Loomis, updated Fri Feb 02 17:53:33 2018