Action:
|
Returns the radius and center of an arc tangent to three co-planar bs3curves. One or two of the curves may degenerate to a point.
|
|
Filename:
|
kern/kern_scm/crv_scm.cxx
|
|
Syntax:
|
(curve:bs3-eval-arc-3curve curve-list point-list
|
|
|
param-list normal)
|
|
Arg Types:
|
curve-list
|
edge | (edge ... )
|
|
point-list
|
position | (position ... )
|
|
param-list
|
real | (real ... )
|
|
normal
|
gvector
|
|
Returns:
|
boolean
|
|
Description:
|
All three B-splines must lie in the same plane. There are potentially many circles lying tangent to the three curves.
param-list provides starting guesses for the parameter value at the point of tangency.
|
|
|
curve-list is a list containing the input bs3curves.
|
|
|
point-list is a list containing the input points if one or two of the curves is a point.
|
|
|
param-list is a list that provides starting guesses for the parameter value at the point of tangency.
|
|
|
normal is a gvector representing the normal to the plane of the curves.
|
|
Example:
|
; curve:bs3-eval-arc-3curve
|
|
; Create spline edges.
|
|
(define spl1 (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))))
|
|
;; spl1
|
|
(define spl2 (edge:spline (list
|
|
|
(position -20 20 0) (position -15 25 0)
|
|
|
(position -10 30 0) (position -5 35 0)
|
|
|
(position -10 40 0) (position -15 45 0)
|
|
|
(position -20 50 0))))
|
|
;; spl2
|
|
(define spl3 (edge:spline (list
|
|
|
(position 50 20 0) (position 45 25 0)
|
|
|
(position 40 30 0) (position 35 35 0)
|
|
|
(position 40 40 0) (position 45 45 0)
|
|
|
(position 50 50 0))))
|
|
;; spl3
|
|
(curve:bs3-eval-arc-3curve (list spl1 spl2
|
|
|
spl3) (list) (list 10 10 10) (gvector 0 0 1))
|
|
; radius = 20.756587
|
|
; center = (15.000000 40.756587 0.000000)
|
|
;; #t
|