1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-01-17 14:18:13 +01:00
dotSCAD/docs/lib3x-ptf_sphere.md

48 lines
1.1 KiB
Markdown
Raw Normal View History

2020-03-29 14:04:57 +08:00
# ptf_sphere
Transforms a point inside a rectangle to a point of a sphere. It can create things such as [sphere maze](https://github.com/JustinSDK/dotSCAD/blob/master/examples/maze/sphere_maze.scad).
2021-02-24 21:09:54 +08:00
![ptf_sphere](images/lib3x-ptf_sphere-1.JPG)
2020-03-29 14:04:57 +08:00
**Since:** 2.3
## Parameters
- `size` : 2 value array `[x, y]`, rectangle with dimensions `x` and `y`.
- `point` : The point to be transformed.
- `radius` : The radius of the sphere.
- `angle` : [za, xa] mapping angles.
## Examples
2022-06-06 13:11:46 +08:00
use <polyline_join.scad>
use <ptf/ptf_sphere.scad>
2020-03-29 14:04:57 +08:00
size = [20, 10];
radius = 5;
angle = [180, 270];
rows = [
2021-12-04 12:16:20 +08:00
for(y = [0:size.y])
[for(x = [0:size.x]) [x, y]]
2020-03-29 14:04:57 +08:00
];
columns = [
2021-12-04 12:16:20 +08:00
for(x = [0:size.x])
[for(y = [0:size.y]) [x, y]]
2020-03-29 14:04:57 +08:00
];
for(line = rows) {
2020-04-09 14:54:37 +08:00
transformed = [for(p = line) ptf_sphere(size, p, radius, angle)];
2021-12-04 10:17:13 +08:00
polyline_join(transformed)
2021-12-04 10:57:29 +08:00
sphere(.25);
2020-03-29 14:04:57 +08:00
}
for(line = columns) {
2020-04-09 14:54:37 +08:00
transformed = [for(p = line) ptf_sphere(size, p, radius, angle)];
2021-12-04 10:17:13 +08:00
polyline_join(transformed)
2021-12-04 10:57:29 +08:00
sphere(.25);
2020-03-29 14:04:57 +08:00
}
2021-02-24 21:09:54 +08:00
![ptf_sphere](images/lib3x-ptf_sphere-2.JPG)