XRAD'S LIDAR Scanner Teensy 3.2 TFMini TFT Millis() question

GREAT, Thx to both of you. Yes, I will try variations of 'fill circles / use two or more adjacent lines / fill between lines,' and propagate them out.

Yes, I read through the GFX lib (and have it functioning on same 1.8 LCD). Yes, was not a simple code crossover to tft (at least for me). I like the tft lib and command structure. Works very well and is pretty straight forward.

Basically the 'fill circle and cover over with another circle' is the initial effect I got with :

for ( int i = 0; i < 2; i ++ )
  {
    tft.fill(  GREEN );
    tft.circle(80, 124, 10);
    tft.circle(80, 124, 20);
    tft.circle(80, 124, 30);
    tft.circle(80, 124, 40);
    tft.circle(80, 124, 50);
    tft.circle(80, 124, 60);
    tft.circle(80, 124, 70);
    tft.circle(80, 124, 80);
    tft.circle(80, 124, 90);
    tft.circle(80, 124, 100);

    tft.fill(  BLACK );
    tft.circle(80, 124, 10);
    tft.circle(80, 124, 20);
    tft.circle(80, 124, 30);
    tft.circle(80, 124, 40);
    tft.circle(80, 124, 50);
    tft.circle(80, 124, 60);
    tft.circle(80, 124, 70);
    tft.circle(80, 124, 80);
    tft.circle(80, 124, 90);
    tft.circle(80, 124, 100);

    tft.background( BLACK );

  }

I will try to blend my codes , make it as simple as possible, and see what happens.

Done! I got the pulse effect to work, and dropped off 'meter ranges' as the pulses cycle, and each cycle produces a smaller ring. The LIDAR rings and labels match the rings in the loop. I could not make the rings 'thicker and fading out' with a good looking effect, but no big deal. Code all done. Time to load to final Teensy 3.2 and put into the laser blaster. Thanks VERY much for your help!

Here is final version of the setup block for the pulsed LIDAR rings. Note the different delay()'s. This is to give the effect of different radius rings pulsing out at similar speed. Maybe down the road, I will try to code the ring pulses to match the radar sweep and plot the 'reflected objects' in the loop...will see...Have to finish an Open Panzer wav file test and build a 'functional' Halloween electric chair with big old knife switch, gauges, articulated skeleton action, lights, sound and a "random action life saving 1905 phone with governor calling in'.....

 //my cool LIDAR start up

  for ( int i = 0; i < 3; i ++ )
  {
    tft.setTextSize( 2 );
    tft.stroke( RED );
    tft.text( "WARNING", 40, 20 );
    tft.text( "INITIALIZING", 10, 40 );
    tft.text( "LIDAR", 50, 60 );
    tft.stroke( WHITE );
    tft.text( "MAX RANGE 10m", 4, 90 );
    tft.stroke( GREEN );
    tft.rect( 2, 2, 158, 124 ) ;
    delay(500);
    tft.background( BLACK );
  }
  
  tft.stroke( RED );
  tft.text( "RANGE", 10, 1 );

  for ( int i = 0; i < 3; i ++)
  {
    for ( int i = 0 ; i < 10 ; i++) {
      tft.stroke (BLUE);
      tft.fill (BLACK);
      tft.circle(80, 117,(r_beam1 * i));
      delay(10);
    }
    tft.stroke( RED );
    tft.setTextSize( 1 );
    tft.text( "10m", 3, 38 );
  }
  for ( int i = 0; i < 3; i ++) {
    for ( int i = 0 ; i < 10 ; i++) {
      tft.stroke (BLUE);
      tft.fill (BLACK);
      tft.circle(80, 117, ((r_beam1 * .66) * i));
      delay(20);
    }
    tft.stroke( RED );
    tft.setTextSize( 1 );
    tft.text( "6.5m", 15, 78 );
  }
  for ( int i = 0; i < 3; i ++) {
    for ( int i = 0 ; i < 10 ; i++) {
      tft.stroke (BLUE);
      tft.fill (BLACK);
      tft.circle(80, 117, ((r_beam1 * .33) * i));
      delay(35);
    }
    tft.stroke( RED );
    tft.setTextSize( 1 );
    tft.text( "3.3m", 30, 120 );
  }
   tft.background( BLACK );

My code has a reason to live! See the final LIDAR product: