/* Pete Hriso Assignment #5 part 2 */ #include "rmannotes.sl" displacement disproceed1(float fuzz= .05, freq = 3, Km = .05;) { float magnitude, layer_mag; float ss, tt; float row, col; point center; float radius; float d; float width; float disk, ring; point p1, p2; /* layer #1 */ ss = repeat(s, 4); tt = repeat(t, 4); center = (0.5, 0.5, 0); radius = 0.5; width = 0.2; d = distance(center, (ss, tt, 0)); ring = pulse(radius - width / 2, radius + width / 2, fuzz, d); layer_mag = ring * .6; magnitude += layer_mag; /* layer #2 */ rotate2d(s, t, radians(45), 0.5, 0.5, ss, tt); ss = repeat(ss, freq); tt = repeat(tt, freq); col = whichtile(ss, freq); row = whichtile(tt, freq); if (even(row)) ss = mod(s * freq + .5 , 1); else ss = repeat(ss, freq + .5); tt = repeat(tt, freq ); layer_mag = pulse(.35, .65, fuzz, ss); magnitude += layer_mag; /* displace */ P += -Km * magnitude * normalize(N); N = calculatenormal(P); }