1
0
mirror of https://github.com/JustinSDK/dotSCAD.git synced 2025-08-19 13:01:37 +02:00

add ptf_circle to preview

This commit is contained in:
Justin Lin
2020-03-24 17:45:30 +08:00
parent 2270f676c4
commit 22ca453b43
4 changed files with 8 additions and 5 deletions

View File

@@ -172,6 +172,7 @@ See [examples](examples).
- ptf/ptf_rotate
- ptf/ptf_x_twist
- ptf/ptf_y_twist
- ptf/ptf_circle
- ptf/ptf_bend
- ptf/ptf_ring
- ptf/ptf_sphere

View File

@@ -16,15 +16,15 @@ module noisy_circle_maze(start, r_blocks, block_width, wall_thickness, origin_of
walls = mz_walls(blocks, double_r_blocks, double_r_blocks, block_width);
half_width = width / 2;
offset = is_undef(origin_offset) ? [-half_width, -half_width] : origin_offset;
rect_size = is_undef(origin_offset) ? [width, width] : [width, width] - origin_offset * 2;
noisy_f = is_undef(noisy_factor) ? 1 : noisy_factor;
seed = rand(0, 256);
for(wall = walls) {
for(i = [0:len(wall) - 2]) {
p0 = ptf_circle(wall[i], offset);
p1 = ptf_circle(wall[i + 1], offset);
p0 = ptf_circle(rect_size, wall[i]);
p1 = ptf_circle(rect_size, wall[i + 1]);
pn00 = pnoise2(p0[0], p0[1], seed) * noisy_f;
pn01 = pnoise2(p0[0] + seed, p0[1] + seed, seed) * noisy_f;
pn10 = pnoise2(p1[0], p1[1], seed) * noisy_f;

View File

@@ -32,6 +32,7 @@ Preview
- `ptf/ptf_rotate`
- `ptf/ptf_x_twist`
- `ptf/ptf_y_twist`
- `ptf/ptf_circle`
- `ptf/ptf_bend`
- `ptf/ptf_ring`
- `ptf/ptf_sphere`

View File

@@ -1,6 +1,7 @@
function ptf_circle(point, offset) =
function ptf_circle(size, point) =
let(
p = [point[0] + offset[1], point[1] + offset[0]],
p_offset = -size / 2,
p = [point[0] + p_offset[1], point[1] + p_offset[0]],
n = max(abs(p[0]), abs(p[1])),
r = n * 1.414,
a = atan2(p[0], p[1])