Action:
|
Evaluates the straight line, which is tangent to a planar bs3curve, and passes it through the given point.
|
|
Filename:
|
kern/kern_scm/crv_scm.cxx
|
|
Syntax:
|
(curve:bs3-eval-tan-pt curve point guess-param)
|
|
Arg Types:
|
curve
|
edge
|
|
point
|
position
|
|
guess-param
|
real
|
|
Returns:
|
position
|
|
Description:
|
Determines a position on a bs3_curve where a line from a given position is tangent to the curve. Uses a guess parameter value to aid the solution (especially where there are multiple solutions).
|
|
|
curve is the input bs3curve whose tangent position has to be determined.
|
|
|
point is the input position that lies on the required line.
|
|
|
guess-param is the guess parameter value to aid the solution (especially where there are multiple solutions).
|
|
Example:
|
; curve:bs3-eval-tan-pt
|
|
; Create a spline edge.
|
|
(define spl (edge:spline (list
|
|
|
(position 0 0 0) (position 5 5 0)
|
|
|
(position 10 15 0) (position 15 20 0)
|
|
|
(position 20 15 0) (position 25 5 0)
|
|
|
(position 30 0 0))))
|
|
;; spl
|
|
; Determine the tangent point on the curve that
|
|
; passes through the position (0 25 0).
|
|
(curve:bs3-eval-tan-pt spl (position 0 25 0) 20)
|
|
;; #[position 15.6785064292946 19.8870807275491 0]
|