Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
al_transfo...projective(3) Library Functions Manual al_transfo...projective(3)

NAME
       al_transform_coordinates_3d_projective -	Allegro	5 API

SYNOPSIS
	      #include <allegro5/allegro.h>

	      void al_transform_coordinates_3d_projective(const	ALLEGRO_TRANSFORM *trans,
		 float *x, float *y, float *z)

DESCRIPTION
       Transform  x, y,	z as homogeneous coordinates.  This is the same	as us-
       ing al_transform_coordinates_4d(3) with the w coordinate	set to 1, then
       dividing	x, y, z	by the resulting w.  This will provide the  same  nor-
       malized coordinates Allegro will	draw to	when a projective transform is
       in  effect  as set with al_use_projection_transform(3).	To get the ac-
       tual pixel coordinates from those translate and scale like so (w	and  h
       would be	the pixel dimensions of	the target bitmap):

	      x	= w / 2	+ x * w	/ 2
	      y	= h / 2	- y * h	/ 2

       Parameters:

        trans - Transformation	to use

        x, y, z - Pointers to the coordinates

       Example:

	      ALLEGRO_TRANSFORM	t2;
	      al_copy_transform(&t2, al_get_current_transform());
	      al_compose_transform(&t2,	al_get_current_projection_transform());

	      ALLEGRO_TRANSFORM	t3;
	      al_identity_transform(&t3);
	      al_scale_transform(&t3, 0.5, -0.5);
	      al_translate_transform(&t3, 0.5, 0.5);
	      al_scale_transform(&t3, al_get_bitmap_width(al_get_target_bitmap()),
				 al_get_bitmap_height(al_get_target_bitmap()));

	      al_transform_coordinates_3d_projective(&t2, &x, &y, &z);
	      // x, y now contain normalized coordinates
	      al_transform_coordinates(&t3, &x,	&y);
	      // x, y now contain pixel	coordinates

       Since 5.2.4

SEE ALSO
       al_use_transform(3),  al_transform_coordinates(3), al_transform_coordi-
       nates_3d(3), al_use_projection_transform(3)

Allegro	reference manual			    al_transfo...projective(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=al_transform_coordinates_3d_projective&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help