المشكلة التي حلّها بيرلين

عام 1983، كان كين بيرلين يعمل على فيلم Tron ويحتاج إلى توليد مواد طبيعية — سحاب، دخان، تضاريس — تبدو عضوية لا آلية. random() لم تكن كافية: القيم العشوائية الخالصة تخلق ضوضاء بيضاء بدون تماسك مكاني.

حله: ضوضاء زائفة متسقة. نقطتان قريبتان لهما قيم متقاربة. فاز بيرلين بجائزة أوسكار علمي عن هذا الاختراع.

كيف تعمل (بدون رياضيات)

noise(x) تأخذ حجة موضع وتُرجع قيمة بين 0 و1. المهم: إذا تغير x ببطء، تغيرت القيمة ببطء.

الاستخدامات الثلاثة الأساسية في p5.js

1. موضع متحرك


let t = 0;
function draw() {
  t += 0.005;
  let x = noise(t) * width;
  let y = noise(t + 100) * height;
  ellipse(x, y, 10, 10);
}

2. حقل متجهات


let angle = noise(p.x * 0.005, p.y * 0.005, frameCount * 0.003) * TWO_PI * 2;
p.x += cos(angle) * 1.5;
p.y += sin(angle) * 1.5;

3. تضاريس ثنائية الأبعاد


let h = noise(x * 0.008, frameCount * 0.005) * height;
line(x, height, x, height - h);

3 قواعد ملخصة

1. غيّر حجة noise() ببطء للحركة البطيئة

2. استخدم إزاحات مختلفة للأبعاد المستقلة

3. العب بـ عامل المقياس للتحكم في كثافة النمط

الدرس التفاعلي ← · ناقش مشروعك ←