DiscretePoint.java 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import lejos.geom.Rectangle;
  2. import lejos.robotics.navigation.Pose;
  3. /*
  4. * Representa um ponto do quadrado da matriz.
  5. * Criado somente qunado necessário.
  6. */
  7. public class DiscretePoint {
  8. ProbabilityMatriz m;
  9. int x, y, z;
  10. public DiscretePoint(ProbabilityMatriz m, int x, int y, int z) {
  11. this.m = m;
  12. this.x =x;
  13. this.y = y;
  14. this.z = z;
  15. }
  16. public void set (double v) {
  17. m.set(v, x, y, z);
  18. }
  19. public double get () {
  20. return m.get(x, y, z);
  21. }
  22. public Rectangle bounds () {
  23. float a = (float) (m.bounds.getMinX()+x*m.ssize);
  24. float b = (float) (m.bounds.getMinY()+y*m.ssize);
  25. return new Rectangle(a, b, (float)m.ssize, (float)m.ssize);
  26. }
  27. /* menor angulo em graus do intervalo */
  28. public double minAng () {
  29. double ang = 360.0/m.alphad*z+270;
  30. return ang;
  31. }
  32. /* maior angulo em graus do intervalo */
  33. public double maxAng () {
  34. double ang = 360.0/m.alphad*(z+1)+270;
  35. return ang;
  36. }
  37. public double midAng () {
  38. return (maxAng()+minAng())/2.0;
  39. }
  40. public Pose pose() {
  41. return new Pose(
  42. (float) bounds().getCenterX(),
  43. (float) bounds().getCenterY(),
  44. (float) midAng()
  45. );
  46. }
  47. }