curve:bs3-eval-arc-3curve
List of: Scheme Extensions
Subjects: Construction Geometry
Contents: Kernel

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
PDF/KERN/12SCA.PDF
HTM/DATA/KERN/KERN/12SCA/0024.HTM