예제 #1
0
  public void draw(PaintScreen dw) {

    float maxHeight = Math.round(dw.getHeight() / 10f) + 1;
    Bitmap bitmap = DataSource.building;
    if (bitmap != null) {
      //	dw.paintBitmap(bitmap, cMarker.x - maxHeight/1.5f, cMarker.y - maxHeight/1.5f);
      //	dw.paintBitmap(bitmap, cMarker.x, cMarker.y);
    }
    // bogus
    // drawCircle(dw);
    // drawTextBlock(dw);
    // Log.d("cMarker","cMarker.x = "+cMarker.x+", cMarker.y = "+cMarker.y);
  }
예제 #2
0
  public void drawCircle(PaintScreen dw) {

    if (isVisible) {
      // float maxHeight = Math.round(dw.getHeight() / 10f) + 1;
      float maxHeight = dw.getHeight();
      dw.setStrokeWidth(maxHeight / 100f);
      dw.setFill(false);
      dw.setColor(DataSource.getColor(datasource));

      // draw circle with radius depending on distance
      // 0.44 is approx. vertical fov in radians
      double angle = 2.0 * Math.atan2(10, distance);
      double radius = Math.max(Math.min(angle / 0.44 * maxHeight, maxHeight), maxHeight / 25f);
      // double radius = angle/0.44d * (double)maxHeight;

      dw.paintCircle(cMarker.x, cMarker.y, (float) radius);
    }
  }
예제 #3
0
  public void drawTextBlock(PaintScreen dw) {
    // TODO: grandezza cerchi e trasparenza
    float maxHeight = Math.round(dw.getHeight() / 10f) + 1;

    // TODO: change textblock only when distance changes
    String textStr = "";

    double d = distance;
    DecimalFormat df = new DecimalFormat("@#");
    if (d < 1000.0) {
      textStr = title + " (" + df.format(d) + "m)";
    } else {
      d = d / 1000.0;
      textStr = title + " (" + df.format(d) + "km)";
    }

    textBlock = new TextObj(textStr, Math.round(maxHeight / 2f) + 1, 250, dw, underline);

    if (isVisible) {

      dw.setColor(DataSource.getColor(datasource));

      float currentAngle = MixUtils.getAngle(cMarker.x, cMarker.y, signMarker.x, signMarker.y);

      txtLab.prepare(textBlock);

      dw.setStrokeWidth(1f);
      dw.setFill(true);

      dw.paintObj(
          txtLab,
          signMarker.x - txtLab.getWidth() / 2,
          signMarker.y + maxHeight,
          currentAngle + 90,
          1);
    }
  }