package patoline

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type curve = float array * float array
val curve : ('a array * 'b array) -> int -> 'a * 'b

Coordonée du i-eme point de contrôle

val rev : ('a array * 'b array) -> 'a array * 'b array

O(n) Retournement

val derivee : float array -> float array

O(n) Dérivée d'un polynôme de Bernstein

val derivee_start : float array -> float

Dérivée en 0 d'un polynôme de Bernstein

val derivee_end : float array -> float

Dérivée en 1 d'un polynôme de Bernstein

val derivee_approx : float array -> float

Dérivée approximative : la corde !

val casteljau_right : float array -> float -> float array

O(n^2) Subdivision de De Casteljau, sur l'intervalle x;1

val casteljau_left : float array -> float -> float array

O(n^2) Subdivision de De Casteljau, sur l'intervalle 0;x

val restrict : float array -> float -> float -> float array

Version combinée de casteljau_left et casteljau_right

val split2 : float array -> float -> float -> float array * float array * float array

Division d'une courbe en trois selon deux temps

val divide : float array -> int -> float array list

Divise une courbe en n > 0 selon le temps

val eval : float array -> float -> float

O(n^2) Evaluation d'une courbe de Bézier en un point, avec l'algo de De Casteljau

val bernstein_solve_int : float array -> float -> (float * float) list

Trouve les racines d'un polynôme avec la règle de Descartes

val bernstein_solve : float array -> float -> float list

Trouve les racines d'un polynôme avec la règle de Descartes

val bernstein_extr : float array -> float * float

Les extremas d'un polynôme

val bounding_box : (float array * float array) -> (float * float) * (float * float)

Les coins diagonaux de la plus petite boîte rectangulaire définissable comme ça qui contient la courbe

val extremity : (float array * float array) -> float list

Cet algorithme est une combinaison de l'algo naif sur les morceaux convexes des courbes, et d'un calcul de resultant pour verifer la sortie

val intersect' : (float array * float array) -> float list -> (float array * float array) -> float list -> (float * float) list
val intersect : (float array * float array) -> (float array * float array) -> (float * float) list
val intersection : ?epsilon:float -> ?thick:float -> (float array * float array) -> (float array * float array) -> (float * float) list
val plus : float array -> float array -> float array
val minus : float array -> float array -> float array
val times : float array -> float array -> float array
val plus2 : float array array -> float array array -> float array array
val minus2 : float array array -> float array array -> float array array
val times2 : float array array -> float array array -> float array array
val solve2 : float array array -> float array array -> (float * float * float * float) list
val distance : (float array * float array) -> (float array * float array) -> float
val distance1 : (float * float) -> (float array * float array) -> float
val subdivise : float -> (float array * float array) -> (float array * float array) list
val oriente : (float array * float array) list list -> ((float array * float array) list * bool) list
val length : (float array * float array) -> float
val partial_length : float -> (float array * float array) -> float
val rotate : float -> (float array * float array) -> float array * float array
OCaml

Innovation. Community. Security.