خوارزمية مربع الماس

ملف:Heightmap.png
خريطة ارتفاع
ملف:Heightmap rendered.png
خريطة ارتفاع بعد أن حولت القيم إلى الفضاء الثلاثي الأبعاد

خوارزمية مربع الماس (بالإنجليزية: Diamond-square algorithm) هي طريقة تستخدم في إنتاج خرائط ارتفاع heightmaps ذات درجة واقعية كبيرة من أجل تطبيقات الرسوميات الحاسوبية. تعتبر على أنها التطبيق الثلاثي الأبعاد لخوارزمية تشرد نقطة الوسط midpoint displacement algorithm التي تنتج تضاريس ثنائية الأبعاد.

الخوارزمية

  • ضع قيمة ارتفاع لكل زاوية من زوايا مستطيل (صورة).
  • قسم المستطيل إلى أربع أرباع مستطيل، وضع قيمة ارتفاع لهذه النقاط تساوي المتوسط الحسابي لقيم ارتفاعات الزوايا التي ترتبط بها.
[0248] سيكون له قيم الارتفاع التالية

[0(0+2)/2(0+4)/2(0+2+4+8)/4]=[0123.5]

لكن عند حساب الارتفاع في المنتصف يجب إضافة قيمة صغيرة للخطأ، تعتمد على حجم المستطيل (عادة يكون الخطأ متناسباً مع حجم المستطيل وبعض الثوابت، حيث تتحكم الثوابت بدرجة خشونة الكسيرية، حيث أن ثابت أكبر ينتج أودية وجبال أشد).

  • يعاد بشكل تكراري تقسيم كل مستطيل ناتج إلى مستطيلات أصغر بحسب القاعدة في الأعلى. في النهاية ستكون صغيرة جداً حيث تعطي الفرق الواضح. تتوقف الخوارزمية عند الحاجة ومن ثم تحول قيم الارتفاع في الصورة إلى قيم ارتفاع في الفضاء الثلاثي الأبعاد.

تطبيقات

تستخدم هذه الخوارزمية في الحصول على تضاريس واقعية، ويوجد العديد من التطبيقات لها في الرسوميات الحاسوبية مثل برنامج برايس.

ملف:Nuvola apps edu mathematics-ar.svg بوابة رياضيات تصفح مقالات ويكيبيديا المهتمة بالرياضيات.

Diamond-square algorithm]] fr:Algorithme Diamant-Carré