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

FreeBSD Manual Pages

  
 
  

home | help
Imager::Graph::Util(3)User Contributed Perl DocumentatioImager::Graph::Util(3)

NAME
	 Imager::Graph::Util - simple geometric	functions

SYNOPSIS
	 my @abc = line_from_points($x1, $y1, $x2, $y2);
	 my @p = intersect_lines(@abc1,	@abc2);
	 my @points = intersect_line_and_circle(@abc1, $cx, $cy, $radius);

DESCRIPTION
       Provides	some simple geometric functions	intended for use in drawing
       graphs.

       line_from_points($x1, $y1, $x2, $y2)
	   Returns the coefficients of a line in the Ax	+ By + C = 0 form.

	   Returns the list (A,	B, C), or an empty list	if they	are the	same
	   point.

       intersect_lines(@abc1, @abc2)
	   Returns the point of	intersection of	the 2 lines, each given	in
	   Ax+By+C=0 form.  Returns either the point (x, y) or an empty	list.

       intersect_line_and_circle(@abc, $cx, $cy, $radius)
	   Returns the points or point of intersection of the given line and
	   circle.

INTERNALS
       intersect_line_and_circle()
	   The implementation is a little heavy	on math.  Perhaps there	was a
	   better way to implement it.

	   Starting with the equations of a line and that of a circle:

	     (1)  Ax + By + C =	0
	     (2)  (x - x1)**2 +	(y - y1)**2 = R	** 2
	     (3)  Ax = -By - C	   # re-arrange	(1)
	     (4)  A**2 (x - x1)**2 + A**2 (y - y1)**2 =	R**2 A**2 # (2)	* A**2
	     (5)  (Ax -	Ax1)**2	+ (Ay -	Ay1)**2	= R**2 A**2 # move it inside
	     (6) (-By -	C - Ax1)**2 + (Ay - Ay1)**2 = R**2 A**2	# sub (3) into (5)

	   Expand and convert to standard quadratic form, and similary for x.

	   Be careful :)

AUTHOR
       Tony Cook <tony@develop-help.com>

SEE ALSO
	 Imager::Graph(3), http://www.develop-help.com/imager/

perl v5.32.1			  2012-05-04		Imager::Graph::Util(3)

NAME | SYNOPSIS | DESCRIPTION | INTERNALS | AUTHOR | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Imager::Graph::Util&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help