دوال الرياضيات الخطية في RenderScript

نظرة عامة

تفسر هذه الدوال وسيطات الإدخال كتمثيل للمتجهات في المساحة ذات الأبعاد التحليلية.

تتأثر دقة العمليات الرياضية على أعداد عشرية 32 بت بالعلامتين rs_fp_relaxed وrs_fp_full. راجع الثوابت والدوال الحسابية للحصول على التفاصيل.

يمكن تحقيق مستويات مختلفة من الدقة والسرعة من خلال استخدام صيغ مختلفة للدوال الحسابية الشائعة. الدوال التي تحمل اسمًا يبدأ بـ

  • Native_: قد يحتوي على عمليات تنفيذ أجهزة مخصصة بدقة أضعف. بالإضافة إلى ذلك، قد يتم تقريب القيم الشبه العادية إلى صفر، وقد يتم استخدام التقريب إلى الصفر، وقد لا يتم التعامل مع إدخالات NaN واللانهاية بشكل صحيح.
  • Fast_: قد تُجري عمليات حسابية داخلية باستخدام عدد عائم 16 بت. بالإضافة إلى ذلك، قد يتم تقريب القيم الصغرى إلى الصفر، وقد يتم استخدام التقريب إلى الصفر.

ملخّص

الدوال
صليب ناتج الضرب الاتجاهي لمتّجهَين
المسافة المسافة بين نقطتين
نقطة ناتج الضرب النقطي لمتّجهَين
Fast_distance المسافة التقريبية بين نقطتين
Fast_length (طول_سرعة) الطول التقريبي للمتجه
Fast_normalize متجه طبيعي تقريبي
length طول المتّجه
Native_distance المسافة التقريبية بين نقطتين
Native_length الطول التقريبي للمتجه
localized_normalize تسوية الخط المتجه تقريبًا
تسوية تسوية الخط المتجه

الدوال

التقاطع : حاصل الضرب المتقاطع لمتّجهَين

float3cross(float3 left_forward, float3 right_forward);
float4cross(float4 left_forward, float4 right_forward);
half3 بحيث يكون متقاطعًا(half3 left_forward, half3right_forward); تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half4 بحيث يكون متقاطعًا(half4 left_forward, half4 right_forward); تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات

لحساب ناتج الضرب الاتجاهي لمتّجهَين.

المسافة : المسافة بين نقطتين

float space(float left_forward, floatright_forward);
float space(float2 left_forward, float2right_forward);
float space(float3 left_forward, float3right_forward);
float space(float4 left_forward, float4right_forward);
half space(half left_forward, half الأيمن_ عائلتك)، تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half space(half2 left_forward, half2right_forward); تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
نصف المسافة(half3 left_forward, half3 المتّجه لليمين)، تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half space(half4 left_forward, half4right_forward); تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات

احسب المسافة بين نقطتين.

يمكنك أيضًا الاطّلاع على Fast_distance() وNative_distance().

النقطة : ناتج الضرب النقطي لمتّجهَين

float dot(float left_forward, float right_forward);
float dot(float2 left_forward, float2right_forward);
float dot(float3 left_forward, float3right_forward);
float dot(float4 left_forward, float4 right_forward);
half dot(half left_forward, half right_forward); تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half dot(half2 left_forward, half2 right_forward); تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half dot(half3 left_forward, half3right_forward); تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half dot(half4 left_forward, half4 right_forward); تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات

تحسب ناتج الضرب النقطي لمتّجهَين.

Fast_distance : المسافة التقريبية بين نقطتين

float Fast_distance(float left_forward, float right_forward); تمّت الإضافة في المستوى 17 من واجهة برمجة التطبيقات
float Fast_distance(float2 left_forward, float2 right_forward); تمّت الإضافة في المستوى 17 من واجهة برمجة التطبيقات
float Fast_distance(float3 left_forward, float3 right_forward); تمّت الإضافة في المستوى 17 من واجهة برمجة التطبيقات
float Fast_distance(float4 left_forward, float4 right_forward); تمّت الإضافة في المستوى 17 من واجهة برمجة التطبيقات

لحساب المسافة التقريبية بين نقطتين.

والدقة هي ما يمكن توقعه من إجراء العملية الحسابية باستخدام قيم النقاط العائمة 16 بت.

راجِع أيضًا distance() وNative_distance().

Fast_length : الطول التقريبي للمتجه

float Fast_length(float v); تمّت الإضافة في المستوى 17 من واجهة برمجة التطبيقات
float Fast_length(float2 v); تمّت الإضافة في المستوى 17 من واجهة برمجة التطبيقات
float Fast_length(float3 v); تمّت الإضافة في المستوى 17 من واجهة برمجة التطبيقات
float Fast_length(float4 v); تمّت الإضافة في المستوى 17 من واجهة برمجة التطبيقات

تحسب الطول التقريبي للمتجه.

والدقة هي ما يمكن توقعه من إجراء العملية الحسابية باستخدام قيم النقاط العائمة 16 بت.

راجِع أيضًا length(), localized_length().

Fast_normalize : الخط المتجه الذي تمت تسويته تقريبًا

float Fast_normalize(float v); تمّت الإضافة في المستوى 17 من واجهة برمجة التطبيقات
float2 Fast_normalize(float2 v)، تمّت الإضافة في المستوى 17 من واجهة برمجة التطبيقات
float3 Fast_normalize(float3 v)، تمّت الإضافة في المستوى 17 من واجهة برمجة التطبيقات
float4 Fast_normalize(float4 v)، تمّت الإضافة في المستوى 17 من واجهة برمجة التطبيقات

تؤدي إلى تسوية متجه.

بالنسبة للمتجهات ذات الحجم 1، يتم إرجاع -1.f للقيم السالبة، و0.f للقيم الفارغة، و1.f للقيم الموجبة.

والدقة هي ما يمكن توقعه من إجراء العملية الحسابية باستخدام قيم النقاط العائمة 16 بت.

راجِع أيضًا normalize(), localized_normalize().

length : طول المتّجه

float length(float v);
float length(float2 v);
float length(float3 v);
float length(float4 v);
half length(half v)، تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half length(half2 v)، تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half length(half3 v)، تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half length(half4 v)، تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات

تحسب طول الخط المتجه.

راجِع أيضًا Fast_length() وNative_length().

Native_distance : المسافة التقريبية بين نقطتين

float original_distance(float left_forward, float اليمين_forward); تمّت الإضافة في المستوى 21 من واجهة برمجة التطبيقات
float original_distance(float2 left_forward, float2 right_forward); تمّت الإضافة في المستوى 21 من واجهة برمجة التطبيقات
float original_distance(float3 left_forward, float3 right_forward); تمّت الإضافة في المستوى 21 من واجهة برمجة التطبيقات
float original_distance(float4 left_forward, float4 right_forward); تمّت الإضافة في المستوى 21 من واجهة برمجة التطبيقات
half original_distance(half left_forward, half right_forward); تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half original_distance(half2 left_forward, half2 right_forward); تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half original_distance(half3 left_forward, half3 right_forward); تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half original_distance(half4 left_forward, half4 right_forward); تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات

لحساب المسافة التقريبية بين نقطتين.

راجِع أيضًا distance() وFast_distance().

localized_length : الطول التقريبي للمتجه

float original_length(float v); تمّت الإضافة في المستوى 21 من واجهة برمجة التطبيقات
float original_length(float2 v); تمّت الإضافة في المستوى 21 من واجهة برمجة التطبيقات
float original_length(float3 v); تمّت الإضافة في المستوى 21 من واجهة برمجة التطبيقات
float original_length(float4 v); تمّت الإضافة في المستوى 21 من واجهة برمجة التطبيقات
half original_length(half v)، تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half original_length(half2 v)، تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half original_length(half3 v)، تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half original_length(half4 v)، تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات

احسب الطول التقريبي للمتجه.

راجِع أيضًا length() وFast_length().

origin_normalize : ضبط المتّجهات بشكل تقريبي

float original_normalize(float v); تمّت الإضافة في المستوى 21 من واجهة برمجة التطبيقات
float2 original_normalize(float2 v)، تمّت الإضافة في المستوى 21 من واجهة برمجة التطبيقات
float3 original_normalize(float3 v)، تمّت الإضافة في المستوى 21 من واجهة برمجة التطبيقات
float4 original_normalize(float4 v)، تمّت الإضافة في المستوى 21 من واجهة برمجة التطبيقات
half original_normalize(half v)، تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half2 original_normalize(half2 v)، تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half3 original_normalize(half3 v)، تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half4 original_normalize(half4 v)، تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات

تؤدي إلى تسوية متجه.

راجِع أيضًا normalize(), Fast_normalize().

تسوية : تسوية متجه

float heightize(float v);
float2 standardize(float2 v)،
float3 standardize(float3 v)،
float4 standardize(float4 v)،
half normalize(half v); تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half2normalize(half2 v)، تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half3normalize(half3 v)، تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات
half4 standardize(half4 v)، تمّت الإضافة في المستوى 24 من واجهة برمجة التطبيقات

يجب ضبط الخط المتجه.

بالنسبة للمتجهات ذات الحجم 1، يتم إرجاع -1.f للقيم السالبة، و0.f للقيم الفارغة، و1.f للقيم الموجبة.

راجِع أيضًا Fast_normalize(), Native_normalize().