question: public boolean generate ( Projection proj ) { proj . forward ( llp1 , pt1 ) ; proj . forward ( llp2 , pt2 ) ; double dx = pt2 . x - pt1 . x ; double dy = pt2 . y - pt1 . y ; at . setToTranslation ( pt1 . x , pt1 . y ) ; at . rotate ( Math . atan2 ( dy , dx ) - angle , 0 , 0 ) ; double sc = Math . sqrt ( dx * dx + dy * dy ) ; badprojection = ( Double . isNaN ( sc ) || sc / distance * proj . getScale ( ) > 1000000 ) ; if ( badprojection ) Debug . message ( "e00" , "badprojection " + str ) ; else { sc /= w ; at . scale ( sc , sc ) ; } return true ; }
target:  generate with a new projection