exspline man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

exspline(3)			Allegro manual			   exspline(3)

NAME
       exspline - Constructing smooth movement paths from spline curves. Alle‐
       gro game programming library.

SYNOPSIS
       #include <allegro.h>

       Example exspline

DESCRIPTION
       This program demonstrates the use of spline  curves  to	create	smooth
       paths  connecting  a number of node points. This can be useful for con‐
       structing realistic motion and animations.

       The technique is to connect the series of guide	points	p1..p(n)  with
       spline curves from p1-p2, p2-p3, etc. Each spline must pass though both
       of its guide points, so they must be used as the first  and  fourth  of
       the  spline control points. The fun bit is coming up with sensible val‐
       ues for the second and third  spline  control  points,  such  that  the
       spline  segments	 will  have equal gradients where they meet. I came up
       with the following solution:

       For each guide point p(n), calculate the desired tangent to  the	 curve
       at that point. I took this to be the vector p(n-1) -> p(n+1), which can
       easily be calculated with  the  inverse	tangent	 function,  and	 gives
       decent looking results. One implication of this is that two dummy guide
       points are needed at each end of the curve, which are used in the  tan‐
       gent calculations but not connected to the set of splines.

       Having  got  these  tangents,  it  becomes fairly easy to calculate the
       spline control points. For a spline between guide points p(a) and p(b),
       the  second  control  point  should lie along the positive tangent from
       p(a), and the third control point should lie along the negative tangent
       from  p(b).  How	 far they are placed along these tangents controls the
       shape of the curve: I found that applying a 'curviness' scaling	factor
       to the distance between p(a) and p(b) works well.

       One  thing  to  note about splines is that the generated points are not
       all equidistant. Instead they tend to bunch up nearer to	 the  ends  of
       the  spline,  which  means you will need to apply some fudges to get an
       object to move at a constant speed. On the other	 hand,	in  situations
       where  the  curve  has  a  noticeable change of direction at each guide
       point, the effect can be quite nice because it makes  the  object  slow
       down for the curve.

SEE ALSO
       END_OF_MAIN(3),	 SCREEN_W(3),	acquire_screen(3),   alert(3),	 alle‐
       gro_error(3), allegro_init(3), allegro_message(3), calc_spline(3), cir‐
       clefill(3),   clear_keybuf(3),  clear_to_color(3),  desktop_palette(3),
       fixatan2(3), fixcos(3),	fixed(3),  fixmul(3),  fixsin(3),  fixsqrt(3),
       fixtof(3),    fixtoi(3),	  font(3),   ftofix(3),	  install_keyboard(3),
       install_mouse(3), install_timer(3), itofix(3),  key(3),	keypressed(3),
       line(3),	  makecol(3),	mouse_b(3),   mouse_x(3),   mouse_y(3),	  pal‐
       ette_color(3), poll_mouse(3), readkey(3), release_screen(3), screen(3),
       set_gfx_mode(3), set_palette(3), show_mouse(3), spline(3), textout_cen‐
       tre_ex(3),   textprintf_centre_ex(3),	textprintf_ex(3),    vsync(3),
       xor_mode(3)

Allegro				 version 4.4.2			   exspline(3)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net