From 61d2706fd3cf680e045eba199d3854df07fabed3 Mon Sep 17 00:00:00 2001 From: Justin Lin Date: Sun, 8 Mar 2020 09:10:43 +0800 Subject: [PATCH] add noise param --- src/experimental/_impl/_pnoise_contour_impl.scad | 14 +++++++++----- src/experimental/pnoise_contour.scad | 14 ++++++++++++-- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/experimental/_impl/_pnoise_contour_impl.scad b/src/experimental/_impl/_pnoise_contour_impl.scad index 8e83040b..22c4c52b 100644 --- a/src/experimental/_impl/_pnoise_contour_impl.scad +++ b/src/experimental/_impl/_pnoise_contour_impl.scad @@ -14,12 +14,16 @@ function _pnoise_contour_step_sub(x, y, current_noise, seed, step_leng, step_ang _pnoise_contour_step_sub(x, y, current_noise, seed, step_leng, step_angle, heading, delta, theta, new_noise, nx, ny, theta + step_angle) : _pnoise_contour_step_sub(x, y, current_noise, seed, step_leng, step_angle, heading, min_delta, maybe_heading, close_noise, maybe_x, maybe_y, theta + step_angle); -function _pnoise_contour_step(x, y, heading, seed, step_leng, step_angle) = - _pnoise_contour_step_sub(x, y, pnoise2([[x, y]], seed)[0], seed, step_leng, step_angle, heading, INFINITY, heading, -1, -1, -1, heading - 90); +function _pnoise_contour_step(x, y, heading, noise, seed, step_leng, step_angle) = + _pnoise_contour_step_sub( + x, y, + is_undef(noise) ? pnoise2([[x, y]], seed)[0] : noise, + seed, step_leng, step_angle, heading, INFINITY, heading, -1, -1, -1, heading - 90 + ); -function _pnoise_contour(x, y, heading, seed, steps, step_leng, step_angle, i = 0) = +function _pnoise_contour(x, y, heading, noise, seed, steps, step_leng, step_angle, i = 0) = i == steps ? [[x, y]] : let( - xyh = _pnoise_contour_step(x, y, heading, seed, step_leng, step_angle) + xyh = _pnoise_contour_step(x, y, heading, noise, seed, step_leng, step_angle) ) - concat([[x, y]], _pnoise_contour(xyh[0], xyh[1], xyh[2], seed, steps, step_leng, step_angle, i + 1)); + concat([[x, y]], _pnoise_contour(xyh[0], xyh[1], xyh[2], noise, seed, steps, step_leng, step_angle, i + 1)); diff --git a/src/experimental/pnoise_contour.scad b/src/experimental/pnoise_contour.scad index 7e2b8f1c..697d8ed1 100644 --- a/src/experimental/pnoise_contour.scad +++ b/src/experimental/pnoise_contour.scad @@ -1,4 +1,14 @@ use ; +use ; -function pnoise_contour(x, y, seed = 1, steps = 50, step_leng = 0.2, step_angle = 12) = - _pnoise_contour(x, y, seed % 360, seed, steps, step_leng, step_angle); \ No newline at end of file +function pnoise_contour(x, y, noise, seed = 1, steps = 50, step_leng = 0.2, step_angle = 12) = + _pnoise_contour( + x, + y, + seed % 360, + noise, + seed, + steps, + step_leng, + step_angle + ); \ No newline at end of file