/** * Draws the phone. * * @param graphics */ protected void paintComponent(Graphics graphics) { super.paintComponent(graphics); // g.drawString("This is my custom Panel!",(int)yawDegree,(int)pitch); Graphics2D g2 = (Graphics2D) graphics; // draw Line2D.Double double centerx = 100; double centery = 100; double centerz = -150; for (int i = 0; i < phone.length; i += 2) { if (i == 0) g2.setColor(Color.RED); if (i == 24) g2.setColor(Color.BLUE); Vector v1 = new Vector(phone[i]); Vector v2 = new Vector(phone[i + 1]); v1.rollpitchyaw(rollDegree, pitchDegree, yawDegree); v2.rollpitchyaw(rollDegree, pitchDegree, yawDegree); g2.draw( new Line2D.Double( centerx + (v1.x + movex) * centerz / (centerz - v1.y), centery - (v1.z + movez) * centerz / (centerz - v1.y), centerx + (v2.x + movex) * centerz / (centerz - v2.y), centery - (v2.z + movez) * centerz / (centerz - v2.y))); } if (mSensorSimulator.isShowAcceleration()) { // Now we also draw the acceleration: g2.setColor(Color.GREEN); Vector v1 = new Vector(0, 0, 0); Vector v2 = new Vector(accelx, accely, accelz); v2.scale(20 * ginverse); // Vector v2 = new Vector(1, 0, 0); v1.rollpitchyaw(rollDegree, pitchDegree, yawDegree); v2.rollpitchyaw(rollDegree, pitchDegree, yawDegree); g2.draw( new Line2D.Double( centerx + (v1.x + movex) * centerz / (centerz - v1.y), centery - (v1.z + movez) * centerz / (centerz - v1.y), centerx + (v2.x + movex) * centerz / (centerz - v2.y), centery - (v2.z + movez) * centerz / (centerz - v2.y))); } }