Waitrud Weber’s blog

things and reminders for memories

3d: windows-make: rebuild parabola

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;
}