mirror of
https://github.com/BelfrySCAD/BOSL2.git
synced 2025-01-01 09:49:45 +00:00
doc fixes
This commit is contained in:
parent
9a01e15f3f
commit
1cb7373284
1 changed files with 15 additions and 20 deletions
|
@ -646,14 +646,14 @@ function plane_line_intersection(plane, line, bounded=false, eps=EPSILON) =
|
||||||
// bounded = If false, the line is considered unbounded. If true, it is treated as a bounded line segment. If given as `[true, false]` or `[false, true]`, the boundedness of the points are specified individually, allowing the line to be treated as a half-bounded ray. Default: false (unbounded)
|
// bounded = If false, the line is considered unbounded. If true, it is treated as a bounded line segment. If given as `[true, false]` or `[false, true]`, the boundedness of the points are specified individually, allowing the line to be treated as a half-bounded ray. Default: false (unbounded)
|
||||||
// nonzero = set to true to use the nonzero rule for determining it points are in a polygon. See point_in_polygon. Default: false.
|
// nonzero = set to true to use the nonzero rule for determining it points are in a polygon. See point_in_polygon. Default: false.
|
||||||
// eps = Tolerance in geometric comparisons. Default: `EPSILON` (1e-9)
|
// eps = Tolerance in geometric comparisons. Default: `EPSILON` (1e-9)
|
||||||
// Example: The line intersects the 3d hexagon in a single point.
|
// Example(3D): The line intersects the 3d hexagon in a single point.
|
||||||
// hex = zrot(140,p=rot([-45,40,20],p=path3d(hexagon(r=15))));
|
// hex = zrot(140,p=rot([-45,40,20],p=path3d(hexagon(r=15))));
|
||||||
// line = [[5,0,-13],[-3,-5,13]];
|
// line = [[5,0,-13],[-3,-5,13]];
|
||||||
// isect = polygon_line_intersection(hex,line);
|
// isect = polygon_line_intersection(hex,line);
|
||||||
// stroke(hex,closed=true);
|
// stroke(hex,closed=true);
|
||||||
// stroke(line);
|
// stroke(line);
|
||||||
// color("red")move(isect)sphere(r=1);
|
// color("red")move(isect)sphere(r=1,$fn=12);
|
||||||
// Example: In 2D things are more complicated. The output is a list of intersection parts, in the simplest case a single segment.
|
// Example(2D): In 2D things are more complicated. The output is a list of intersection parts, in the simplest case a single segment.
|
||||||
// hex = hexagon(r=15);
|
// hex = hexagon(r=15);
|
||||||
// line = [[-20,10],[25,-7]];
|
// line = [[-20,10],[25,-7]];
|
||||||
// isect = polygon_line_intersection(hex,line);
|
// isect = polygon_line_intersection(hex,line);
|
||||||
|
@ -665,7 +665,7 @@ function plane_line_intersection(plane, line, bounded=false, eps=EPSILON) =
|
||||||
// move(part[0]) sphere(r=1);
|
// move(part[0]) sphere(r=1);
|
||||||
// else
|
// else
|
||||||
// stroke(part);
|
// stroke(part);
|
||||||
// Example: In 2D things are more complicated. Here the line is treated as a ray.
|
// Example(2D): Here the line is treated as a ray.
|
||||||
// hex = hexagon(r=15);
|
// hex = hexagon(r=15);
|
||||||
// line = [[0,0],[25,-7]];
|
// line = [[0,0],[25,-7]];
|
||||||
// isect = polygon_line_intersection(hex,line,RAY);
|
// isect = polygon_line_intersection(hex,line,RAY);
|
||||||
|
@ -677,7 +677,7 @@ function plane_line_intersection(plane, line, bounded=false, eps=EPSILON) =
|
||||||
// move(part[0]) circle(r=1,$fn=12);
|
// move(part[0]) circle(r=1,$fn=12);
|
||||||
// else
|
// else
|
||||||
// stroke(part);
|
// stroke(part);
|
||||||
// Example: Here the intersection is a single point, which is returned as a single point "path" on the path list.
|
// Example(2D): Here the intersection is a single point, which is returned as a single point "path" on the path list.
|
||||||
// hex = hexagon(r=15);
|
// hex = hexagon(r=15);
|
||||||
// line = [[15,-10],[15,13]];
|
// line = [[15,-10],[15,13]];
|
||||||
// isect = polygon_line_intersection(hex,line,RAY);
|
// isect = polygon_line_intersection(hex,line,RAY);
|
||||||
|
@ -689,7 +689,7 @@ function plane_line_intersection(plane, line, bounded=false, eps=EPSILON) =
|
||||||
// move(part[0]) circle(r=1,$fn=12);
|
// move(part[0]) circle(r=1,$fn=12);
|
||||||
// else
|
// else
|
||||||
// stroke(part);
|
// stroke(part);
|
||||||
// Example: Another way to get a single segment
|
// Example(2D): Another way to get a single segment
|
||||||
// hex = hexagon(r=15);
|
// hex = hexagon(r=15);
|
||||||
// line = rot(30,p=[[15,-10],[15,25]],cp=[15,0]);
|
// line = rot(30,p=[[15,-10],[15,25]],cp=[15,0]);
|
||||||
// isect = polygon_line_intersection(hex,line,RAY);
|
// isect = polygon_line_intersection(hex,line,RAY);
|
||||||
|
@ -701,7 +701,7 @@ function plane_line_intersection(plane, line, bounded=false, eps=EPSILON) =
|
||||||
// move(part[0]) circle(r=1,$fn=12);
|
// move(part[0]) circle(r=1,$fn=12);
|
||||||
// else
|
// else
|
||||||
// stroke(part);
|
// stroke(part);
|
||||||
// Example: Single segment again
|
// Example(2D): Single segment again
|
||||||
// star = star(r=15,n=8,step=2);
|
// star = star(r=15,n=8,step=2);
|
||||||
// line = [[20,-5],[-5,20]];
|
// line = [[20,-5],[-5,20]];
|
||||||
// isect = polygon_line_intersection(star,line,RAY);
|
// isect = polygon_line_intersection(star,line,RAY);
|
||||||
|
@ -713,7 +713,7 @@ function plane_line_intersection(plane, line, bounded=false, eps=EPSILON) =
|
||||||
// move(part[0]) circle(r=1,$fn=12);
|
// move(part[0]) circle(r=1,$fn=12);
|
||||||
// else
|
// else
|
||||||
// stroke(part);
|
// stroke(part);
|
||||||
// Example: Solution is two points
|
// Example(2D): Solution is two points
|
||||||
// star = star(r=15,n=8,step=3);
|
// star = star(r=15,n=8,step=3);
|
||||||
// line = rot(22.5,p=[[15,-10],[15,20]],cp=[15,0]);
|
// line = rot(22.5,p=[[15,-10],[15,20]],cp=[15,0]);
|
||||||
// isect = polygon_line_intersection(star,line,SEGMENT);
|
// isect = polygon_line_intersection(star,line,SEGMENT);
|
||||||
|
@ -725,7 +725,7 @@ function plane_line_intersection(plane, line, bounded=false, eps=EPSILON) =
|
||||||
// move(part[0]) circle(r=1,$fn=12);
|
// move(part[0]) circle(r=1,$fn=12);
|
||||||
// else
|
// else
|
||||||
// stroke(part);
|
// stroke(part);
|
||||||
// Example: Solution is list of three segments
|
// Example(2D): Solution is list of three segments
|
||||||
// star = star(r=25,ir=9,n=8);
|
// star = star(r=25,ir=9,n=8);
|
||||||
// line = [[-25,12],[25,12]];
|
// line = [[-25,12],[25,12]];
|
||||||
// isect = polygon_line_intersection(star,line);
|
// isect = polygon_line_intersection(star,line);
|
||||||
|
@ -737,7 +737,7 @@ function plane_line_intersection(plane, line, bounded=false, eps=EPSILON) =
|
||||||
// move(part[0]) circle(r=1,$fn=12);
|
// move(part[0]) circle(r=1,$fn=12);
|
||||||
// else
|
// else
|
||||||
// stroke(part);
|
// stroke(part);
|
||||||
// Example: Solution is a mixture of segments and points
|
// Example(2D): Solution is a mixture of segments and points
|
||||||
// star = star(r=25,ir=9,n=7);
|
// star = star(r=25,ir=9,n=7);
|
||||||
// line = [left(10,p=star[8]), right(50,p=star[8])];
|
// line = [left(10,p=star[8]), right(50,p=star[8])];
|
||||||
// isect = polygon_line_intersection(star,line);
|
// isect = polygon_line_intersection(star,line);
|
||||||
|
@ -1591,22 +1591,17 @@ function point_in_polygon(point, poly, nonzero=false, eps=EPSILON) =
|
||||||
// poly = Array of vertices for the polygon.
|
// poly = Array of vertices for the polygon.
|
||||||
// ind = A list indexing the vertices of the polygon in `poly`.
|
// ind = A list indexing the vertices of the polygon in `poly`.
|
||||||
// eps = A maximum tolerance in geometrical tests. Default: EPSILON
|
// eps = A maximum tolerance in geometrical tests. Default: EPSILON
|
||||||
// Example:
|
// Example(2D):
|
||||||
// poly = star(id=10, od=15,n=11);
|
// poly = star(id=10, od=15,n=11);
|
||||||
// tris = polygon_triangulate(poly);
|
// tris = polygon_triangulate(poly);
|
||||||
// polygon(poly);
|
// for(tri=tris) stroke(select(poly,tri), width=.1, closed=true);
|
||||||
// up(1)
|
// Example(3D):
|
||||||
// color("blue");
|
|
||||||
// for(tri=tris) trace_path(select(poly,tri), size=.1, closed=true);
|
|
||||||
//
|
|
||||||
// Example:
|
|
||||||
// include <BOSL2/polyhedra.scad>
|
// include <BOSL2/polyhedra.scad>
|
||||||
// vnf = regular_polyhedron_info(name="dodecahedron",side=5,info="vnf");
|
// vnf = regular_polyhedron_info(name="dodecahedron",side=5,info="vnf");
|
||||||
// %vnf_polyhedron(vnf);
|
// %vnf_polyhedron(vnf);
|
||||||
// vnf_tri = [vnf[0], [for(face=vnf[1]) each polygon_triangulate(vnf[0], face) ] ];
|
// vnf_tri = [vnf[0], [for(face=vnf[1]) each polygon_triangulate(vnf[0], face) ] ];
|
||||||
// color("blue")
|
// color("blue")
|
||||||
// vnf_wireframe(vnf_tri, d=.15);
|
// vnf_wireframe(vnf_tri, width=.15);
|
||||||
|
|
||||||
function polygon_triangulate(poly, ind, eps=EPSILON) =
|
function polygon_triangulate(poly, ind, eps=EPSILON) =
|
||||||
assert(is_path(poly), "Polygon `poly` should be a list of 2d or 3d points")
|
assert(is_path(poly), "Polygon `poly` should be a list of 2d or 3d points")
|
||||||
assert(is_undef(ind)
|
assert(is_undef(ind)
|
||||||
|
|
Loading…
Reference in a new issue