package OCADml

  1. Overview
  2. Docs

Source file arc3.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
let arc ?rev ?fn ?fa ?fs ?(plane = Plane.xy) ?wedge ~centre ~radius ~start angle =
  Arc2.arc
    ?rev
    ?fn
    ?fa
    ?fs
    ?wedge
    ~centre:(Plane.project plane centre)
    ~radius
    ~start
    angle
  |> List.map (Plane.lift plane)

let arc_about_centre ?rev ?fn ?fa ?fs ?dir ?wedge ~centre p1 p2 =
  let plane = Plane.make centre p1 p2 in
  let project = Plane.project plane
  and lift = List.map (Plane.lift plane) in
  let p1' = project p1
  and p2' = project p2
  and centre' = project centre in
  lift @@ Arc2.arc_about_centre ?rev ?dir ?fn ?fa ?fs ?wedge ~centre:centre' p1' p2'

let arc_through ?rev ?fn ?fa ?fs ?wedge p1 p2 p3 =
  let plane = Plane.make p3 p1 p2 in
  let project = Plane.project plane
  and lift = List.map (Plane.lift plane) in
  let p1' = project p1
  and p2' = project p2
  and p3' = project p3 in
  lift @@ Arc2.arc_through ?rev ?fn ?fa ?fs ?wedge p1' p2' p3'
OCaml

Innovation. Community. Security.