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

FreeBSD Manual Pages

  
 
  

home | help
exquat(3)			 Allegro manual 		       exquat(3)

NAME
     exquat  -	A  comparison between Euler angles and quaternions. Allegro game
     programming library.

SYNOPSIS
     #include <allegro.h>

     Example exquat

DESCRIPTION
     Euler angles are convenient for storing and creating 3D orientations.  How-
     ever, this program demonstrates that they are not good  when  interpolating
     between  two  different  orientations. The problem is solved by using Alle-
     gro's quaternion operations.

     In this program, two cubes are rotated between random orientations.  Notice
     that although they have the same beginning and ending orientations, they do
     not follow the same path between orientations.

     One cube is being rotated by  directly  incrementing  or  decrementing  the
     Euler angles from the starting point to the ending point.	This is an intu-
     itive  notion,  but it is incorrect because it does not cause the object to
     turn around a single unchanging axis of rotation.	 The  axis  of	rotation
     wobbles  resulting  in the object spinning in strange ways. The object will
     eventually end up in the orientation that the user intended,  but	it  gets
     there  in	a  way that is unattractive.  Imagine if this method was used to
     update the position of a camera in a game! Sometimes it would swing  wildly
     and disorient the player.

     The  other  cube is animated using quaternions. This results in a much more
     pleasing animation because the cube turns around a single axis of rotation.

SEE ALSO
     BITMAP(3), END_OF_MAIN(3), MATRIX_f(3), QUAT(3),  acquire_bitmap(3),  alle-
     gro_error(3),   allegro_init(3),	allegro_message(3),   apply_matrix_f(3),
     blit(3), circle(3), clear_keybuf(3),  clear_to_color(3),  create_bitmap(3),
     desktop_palette(3),   destroy_bitmap(3),  font(3),  get_camera_matrix_f(3),
     get_rotation_matrix(3), get_rotation_matrix_f(3), get_rotation_quat(3), in-
     stall_keyboard(3),      keypressed(3),	 line(3),	matrix_mul_f(3),
     palette_color(3),	 persp_project_f(3),   quat_interpolate(3),  quat_to_ma-
     trix(3),	  readkey(3),	  release_bitmap(3),	 rest(3),     screen(3),
     set_gfx_mode(3), set_palette(3), set_projection_viewport(3), textout_ex(3)

Allegro 			  version 4.4.3 		       exquat(3)

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

home | help