we sure, this program stopped on the Calculation of parabola.
printed is the below, so that we think, that calculation is perspective-view.
intersection_001 = p( 377.311493, 438.347473, -130.084869)
result_001 = p( 190.358154, 319.058716, 509.416840)
001 x, y = 316682.000000 , 187567.435008
002 x, y = 494.815613 , 390.765495
003 x, y = 494.815613 , 89.234497 height 480.000000
// All qualified at 20190627: // // // // int vScreen::OntheScreen ( vPoint lp, float* x, float* y ) { vCalculation calc; //printf("lp= "); //lp.print (); // Screen( x, y ) // lp is surely on the screen. vPoint result = calc.subtract( lp , this->C ); printf("result_001 = "); result.print(); *x = calc.dot( result, this->U ); // up *y = calc.dot( result, this->V ); // right printf("001 x, y = %f , %f\r\n", *x, *y); *x /= (double)this->width; *y /= (double)this->height; printf("002 x, y = %f , %f\r\n", *x, *y); *y = -*y + this->height; printf("003 x, y = %f , %f height %f\r\n", *x, *y, this->height); /* result_x = calc.cross ( result, this->u ) ; result_y = calc.cross ( result, this->up ) ; // double -> float *x = (float) this_calc->length( result_x ); *y = this->height - (float) this_calc->length( result_y ); *x = *x + this->width / 2.0f; *y = ( -*y + this->height ) + this->height/2.0f; */ return 0; }