List of usage examples for org.apache.commons.math3.geometry.euclidean.threed Vector3D getX
public double getX()
From source file:sceneGraph.Rot.java
public DVector getAxis() { Vector3D v = rotation.getAxis(); return new DVector((double) v.getX(), (double) v.getY(), (double) v.getZ()); }
From source file:sceneGraph.Rot.java
public PVector applyTo(PVector v) { Vector3D result = new Vector3D((double) v.x, (double) v.y, (double) v.z); result = rotation.applyTo(result);// w w w .j av a2s.c o m return new PVector((float) result.getX(), (float) result.getY(), (float) result.getZ()); }
From source file:services.SimulationService.java
public Ray convertRayToModelSpace(Point3D origin, Point3D end, SWGObject object) { Point3D position = object.getPosition(); WB_M44 translateMatrix = new WB_M44(1, 0, 0, position.x, 0, 1, 0, position.y, 0, 0, 1, position.z, 0, 0, 0, 1);//from ww w. j a v a 2 s . c om float radians = object.getRadians(); float sin = (float) Math.sin(radians); float cos = (float) Math.cos(radians); WB_M44 rotationMatrix = new WB_M44(cos, 0, sin, 0, 0, 1, 0, 0, -sin, 0, cos, 0, 0, 0, 0, 1); WB_M44 modelSpace = null; try { modelSpace = translateMatrix.mult(rotationMatrix).inverse(); } catch (Exception ex) { // It's usually a bank terminal causing this //System.out.println("The object " + object.getTemplate() + " at x:" + object.getWorldPosition().x + " z:" + object.getWorldPosition().z + " causes a problem during modelspaceconversion. Can be safely ignored."); if (modelSpace == null) return new Ray(origin, new Vector3D(0, 0, 0)); } float originX = (float) (modelSpace.m11 * origin.x + modelSpace.m12 * origin.y + modelSpace.m13 * origin.z + modelSpace.m14); float originY = (float) (modelSpace.m21 * origin.x + modelSpace.m22 * origin.y + modelSpace.m23 * origin.z + modelSpace.m24); float originZ = (float) (modelSpace.m31 * origin.x + modelSpace.m32 * origin.y + modelSpace.m33 * origin.z + modelSpace.m34); origin = new Point3D(originX, originY, originZ); float endX = (float) (modelSpace.m11 * end.x + modelSpace.m12 * end.y + modelSpace.m13 * end.z + modelSpace.m14); float endY = (float) (modelSpace.m21 * end.x + modelSpace.m22 * end.y + modelSpace.m23 * end.z + modelSpace.m24); float endZ = (float) (modelSpace.m31 * end.x + modelSpace.m32 * end.y + modelSpace.m33 * end.z + modelSpace.m34); end = new Point3D(endX, endY, endZ); Vector3D direction = new Vector3D(end.x - origin.x, end.y - origin.y, end.z - origin.z); if (direction.getX() > 0 && direction.getY() > 0 && direction.getZ() > 0) direction.normalize(); return new Ray(origin, direction); }
From source file:tests.TestDrawing.java
@Test public void testDrawing() { BufferedImage img = null;/*ww w. j av a 2 s .c o m*/ BufferedImage imgs[] = new BufferedImage[2]; try { imgs[0] = ImageIO.read(new File("../captures/4.jpg")); // eventually C:\\ImageTest\\pic2.jpg imgs[1] = ImageIO.read(new File("../captures/5.jpg")); // eventually C:\\ImageTest\\pic2.jpg img = ImageIO.read(new File("../captures/5.jpg")); // eventually C:\\ImageTest\\pic2.jpg for (int x = 0; x < img.getWidth(); x++) { for (int y = 0; y < img.getHeight(); y++) { int rgbDiff = RgbCalculator.absoluteDifference(imgs[0].getRGB(x, y), imgs[1].getRGB(x, y)); img.setRGB(x, y, rgbDiff); } } Graphics2D g2d = img.createGraphics(); g2d.setBackground(Color.BLUE); g2d.setColor(Color.RED); Vector3D[] corners = new Vector3D[] { new Vector3D(new double[] { 172, 78, 0 }), new Vector3D(new double[] { 455, 71, 0 }), new Vector3D(new double[] { 507, 350, 0 }), new Vector3D(new double[] { 143, 362, 0 }) }; //draw lines from corner to corner for (int c = 0; c < corners.length; c++) { Vector3D v1 = corners[c]; Vector3D v2 = corners[(c + 1) % corners.length]; g2d.drawLine((int) v1.getX(), (int) v1.getY(), (int) v2.getX(), (int) v2.getY()); } for (int x = 0; x < img.getWidth(); x++) { for (int y = 0; y < img.getHeight(); y++) { Vector3D currentPos = new Vector3D(new double[] { x, y, 0 }); double[] normalizedCoordinates = new double[2]; { //normalize x coordinate Line floor = new Line(corners[0], corners[3], 0.5); Line roof = new Line(corners[1], corners[2], 0.5); double floorDistance = floor.distance(currentPos) * 1 / corners[0].distance(corners[3]); double roofDistance = roof.distance(currentPos) * 1 / corners[1].distance(corners[2]); normalizedCoordinates[0] = interpolate(0, 1, floorDistance / (floorDistance + roofDistance)); } { //normalize y coordinate Line floor = new Line(corners[0], corners[1], 0.5); Line roof = new Line(corners[2], corners[3], 0.5); double floorDistance = floor.distance(currentPos) * 1 / corners[0].distance(corners[1]); double roofDistance = roof.distance(currentPos) * 1 / corners[2].distance(corners[3]); normalizedCoordinates[1] = interpolate(0, 1, floorDistance / (floorDistance + roofDistance)); } boolean isEdge = false; for (int d = 0; d < 2; d++) { double val = normalizedCoordinates[d]; if (Math.abs((double) ((int) (val * 8)) - (val * 8)) < 0.05) { isEdge = true; } } if (isEdge) { //color corners red: img.setRGB(x, y, Color.RED.getRGB()); } } } JFrame dialog = new JFrame(); ImagePanel imagePanel = new ImagePanel(img); dialog.add(imagePanel); imagePanel.setSize(100, 100); dialog.pack(); dialog.setSize(300, 300); dialog.setVisible(true); } catch (IOException e) { throw new RuntimeException(e); } assertTrue("hello", true); }