Bitbybit Docs
    Preparing search index...

    Class MathBitByBit

    الحساب والتقريب والنطاقات والأرقام العشوائية والدوال المثلثية على الأرقام البسيطة. تأخذ الدوال المثلثية الزوايا بالراديان وتعطيها به؛ ويحول degToRad و radToDeg عند الحدود، لأن كل زاوية تقريبا يكتبها المستخدم بالدرجات. مساعدات الاستيفاء (lerp و remap و ease و smoothstep و pingPong) هي اللبنات الأساسية للحركة والتنويع البارامتري.

    Index

    Constructors

    basics

    • يجمع رقمين.

      مثال: 5 و 3 -> 8، -2 و 7 -> 5

      Parameters

      Returns number

      مجموعهما

      const sum = bitbybit.math.add({ first: 5, second: 3 });
      
    • يطرح الرقم الثاني من الأول.

      مثال: 10 و 3 -> 7، 5 و 8 -> -3

      Parameters

      • inputs: TwoNumbersDto

        الرقم المراد الطرح منه والرقم المراد طرحه

      Returns number

      الفرق بينهما

      const difference = bitbybit.math.subtract({ first: 10, second: 3 });
      
    • يضرب رقمين.

      مثال: 5 و 3 -> 15، -2 و 4 -> -8

      Parameters

      Returns number

      حاصل ضربهما

      const product = bitbybit.math.multiply({ first: 5, second: 3 });
      
    • يقسم الرقم الأول على الثاني.

      القسمة على 0 تعطي Infinity، كما في JavaScript. مثال: 10 و 2 -> 5، 7 و 2 -> 3.5

      Parameters

      • inputs: TwoNumbersDto

        الرقم المراد قسمته والرقم المراد القسمة عليه

      Returns number

      حاصل قسمتهما

      const quotient = bitbybit.math.divide({ first: 7, second: 2 });
      
    • يرفع الرقم الأول إلى قوة الثاني.

      مثال: 2 قوة 3 -> 8، 5 قوة 2 -> 25، 10 قوة -1 -> 0.1

      Parameters

      Returns number

      القوة

      const cube = bitbybit.math.power({ first: 2, second: 3 });
      
    • يجد الجذر التربيعي لرقم.

      الرقم السالب يعطي NaN. مثال: 9 -> 3، 2 -> 1.414

      Parameters

      Returns number

      الجذر التربيعي

    • يسقط إشارة رقم، فلا تكون النتيجة سالبة أبدا.

      مثال: -5 -> 5، 3 -> 3، 0 -> 0

      Parameters

      Returns number

      القيمة المطلقة

    • يقرّب رقما إلى أقرب رقم صحيح؛ الأنصاف تُقرّب إلى الأعلى.

      مثال: 3.7 -> 4، 2.3 -> 2، 5.5 -> 6

      Parameters

      Returns number

      أقرب عدد صحيح

    • يقرّب رقما إلى الأسفل إلى الرقم الصحيح الذي تحته.

      مثال: 3.7 -> 3، -2.3 -> -3، 5 -> 5

      Parameters

      Returns number

      العدد الصحيح الأدنى

    • يقرّب رقما إلى الأعلى إلى الرقم الصحيح الذي فوقه.

      مثال: 3.2 -> 4، -2.8 -> -2، 5 -> 5

      Parameters

      Returns number

      العدد الصحيح الأعلى

    • يقلب إشارة رقم.

      مثال: 5 -> -5، -3 -> 3، 0 -> 0

      Parameters

      Returns number

      الرقم بالإشارة المعاكسة

    • يجد اللوغاريتم الطبيعي لرقم: القوة التي يجب رفع e إليها للحصول على ذلك الرقم.

      مثال: 2.718 -> نحو 1، 1 -> 0

      Parameters

      • inputs: NumberDto

        الرقم، أكبر من 0

      Returns number

      اللوغاريتم الطبيعي

    • يجد اللوغاريتم ذا الأساس 10 لرقم: القوة التي يجب رفع 10 إليها للحصول على ذلك الرقم.

      مثال: 100 -> 2، 1000 -> 3، 10 -> 1

      Parameters

      • inputs: NumberDto

        الرقم، أكبر من 0

      Returns number

      اللوغاريتم ذو الأساس 10

    • يرفع 10 إلى قوة رقم.

      مثال: 2 -> 100، 3 -> 1000، -1 -> 0.1

      Parameters

      Returns number

      10 مرفوعا إلى تلك القوة

    • يجد جيب زاوية معطاة بالراديان.

      مثال: 0 -> 0، pi/2 -> 1

      Parameters

      • inputs: NumberDto

        الزاوية بالراديان

      Returns number

      الجيب، بين -1 و 1

    • يجد جيب تمام زاوية معطاة بالراديان.

      مثال: 0 -> 1، pi -> -1

      Parameters

      • inputs: NumberDto

        الزاوية بالراديان

      Returns number

      جيب التمام، بين -1 و 1

    • يجد ظل زاوية معطاة بالراديان.

      مثال: 0 -> 0، pi/4 -> نحو 1

      Parameters

      • inputs: NumberDto

        الزاوية بالراديان

      Returns number

      الظل

    • يجد الزاوية، بالراديان، التي جيبها هو الرقم المعطى.

      مثال: 0 -> 0، 1 -> pi/2 (نحو 1.57)

      Parameters

      Returns number

      الزاوية بالراديان

    • يجد الزاوية، بالراديان، التي جيب تمامها هو الرقم المعطى.

      مثال: 1 -> 0، -1 -> pi (نحو 3.14)

      Parameters

      Returns number

      الزاوية بالراديان

    • يجد الزاوية، بالراديان، التي ظلها هو الرقم المعطى.

      مثال: 0 -> 0، 1 -> pi/4 (نحو 0.785)

      Parameters

      Returns number

      الزاوية بالراديان، بين -pi/2 و pi/2

    • يرفع e، أساس اللوغاريتم الطبيعي، إلى قوة رقم.

      مثال: 0 -> 1، 1 -> نحو 2.718، 2 -> نحو 7.389

      Parameters

      Returns number

      e مرفوعا إلى تلك القوة

    • يحول زاوية من الدرجات إلى الراديان.

      مثال: 180 -> pi (نحو 3.14159)، 90 -> pi/2

      Parameters

      • inputs: NumberDto

        الزاوية بالدرجات

      Returns number

      الزاوية بالراديان

    • يحول زاوية من الراديان إلى الدرجات.

      مثال: pi -> 180، pi/2 -> 90

      Parameters

      • inputs: NumberDto

        الزاوية بالراديان

      Returns number

      الزاوية بالدرجات

    create

    • يمرر رقما دون تغيير، بحيث يمكن إعطاء القيمة اسما وإعادة استخدامها.

      مثال: 42 -> 42

      Parameters

      Returns number

      الرقم نفسه

    generate

    • يعطي رقما عشوائيا من 0 حتى 1، دون شمول 1.

      مثال: 0.342 أو 0.891 أو أي قيمة أخرى في ذلك النطاق

      Returns number

      رقم عشوائي بين 0 و 1

    • يعطي رقما عشوائيا بين low و high.

      مثال: low 0، high 10 -> 3.7 أو 8.2 أو أي قيمة أخرى بينهما

      Parameters

      • inputs: RandomNumberDto

        الطرفان الأدنى والأعلى للنطاق

      Returns number

      رقم عشوائي في النطاق

      const value = bitbybit.math.randomNumber({ low: 0, high: 10 });
      
    • يعطي قائمة أرقام عشوائية بين low و high.

      مثال: low 0، high 10، count 3 -> [2.5, 7.1, 4.8]

      Parameters

      • inputs: RandomNumbersDto

        الطرفان الأدنى والأعلى للنطاق وعدد الأرقام المراد إنشاؤها

      Returns number[]

      الأرقام العشوائية

      const values = bitbybit.math.randomNumbers({ low: 0, high: 10, count: 3 });
      
    • يعطي الثابت pi، نسبة محيط الدائرة إلى قطرها.

      مثال: 3.141592653589793

      Returns number

      الرقم pi

    operations

    • يطبق عملية حسابية واحدة على رقمين: جمع أو طرح أو ضرب أو قسمة أو قوة أو باقي القسمة.

      تقرأ العملية first ثم second: الطرح يعطي الأول ناقص الثاني، والقوة تعطي الأول مرفوعا إلى قوة الثاني. مثال: 5 جمع 3 -> 8، 10 باقي القسمة على 3 -> 1، 2 قوة 3 -> 8

      Parameters

      Returns number

      نتيجة العملية

      const result = bitbybit.math.twoNrOperation({ first: 2, second: 3, operation: Bit.Inputs.Math.mathTwoNrOperatorEnum.power });
      
    • يجد الباقي بعد قسمة رقم على آخر.

      تتبع الإشارة الرقم الأول، كما في JavaScript. مثال: 10 باقي القسمة على 3 -> 1، 17 باقي القسمة على 5 -> 2

      Parameters

      • inputs: ModulusDto

        الرقم المراد قسمته والرقم المراد القسمة عليه

      Returns number

      الباقي

      const remainder = bitbybit.math.modulus({ number: 17, modulus: 5 });
      
    • يقرّب رقما إلى عدد معطى من المنازل العشرية.

      مثال: 1.32156 إلى 3 منازل -> 1.322

      Parameters

      • inputs: RoundToDecimalsDto

        الرقم وعدد المنازل العشرية المراد الاحتفاظ بها

      Returns number

      الرقم المقرب

      const rounded = bitbybit.math.roundToDecimals({ number: 1.32156, decimalPlaces: 3 });
      
    • يقرّب رقما إلى عدد معطى من المنازل العشرية ويحذف الأصفار في النهاية.

      كرقم لا يمكن للنتيجة أن تحمل أصفارا في النهاية على أي حال؛ الفرق عن roundToDecimals هو أن ضجيج الفاصلة العائمة مثل 1.320000001 يُنظف إلى 1.32. مثال: 1.32156 إلى 3 منازل -> 1.322، 1.320000001 -> 1.32، 1.000 -> 1

      Parameters

      • inputs: RoundToDecimalsDto

        الرقم وعدد المنازل العشرية المراد الاحتفاظ بها

      Returns number

      الرقم المقرب

      const clean = bitbybit.math.roundAndRemoveTrailingZeros({ number: 1.320000001, decimalPlaces: 3 });
      
    • يطبق عملية واحدة على رقم واحد: القيمة المطلقة، أو النفي، أو الجذر التربيعي، أو التقريب، أو اللوغاريتمات، أو الدوال المثلثية ومعكوساتها، أو الأسية، أو التحويل بين الراديان والدرجات.

      تعمل الدوال المثلثية بالراديان. مثال: sqrt لـ 5 -> 2.236، القيمة المطلقة لـ -3 -> 3

      Parameters

      Returns number

      نتيجة العملية

      const root = bitbybit.math.oneNrOperation({ number: 5, operation: Bit.Inputs.Math.mathOneNrOperatorEnum.sqrt });
      
    • يربط رقما من نطاق إلى نطاق آخر، محافظا على موضعه النسبي.

      الرقم الواقع خارج النطاق المصدر يُربط تناسبيا إلى ما بعد النطاق الهدف. مثال: 5 من [0,10] إلى [0,100] -> 50، 0.5 من [0,1] إلى [-10,10] -> 0

      Parameters

      • inputs: RemapNumberDto

        الرقم والنطاق الذي يقع فيه والنطاق المراد تحويله إليه

      Returns number

      الرقم عند الموضع النسبي نفسه في النطاق المستهدف

      const percent = bitbybit.math.remap({ number: 5, fromLow: 0, fromHigh: 10, toLow: 0, toHigh: 100 });
      
    • ينسق رقما كنص بعدد ثابت من المنازل العشرية، مع الاحتفاظ بالأصفار في النهاية.

      مثال: 3.14159 بمنزلتين -> '3.14'، 5 بثلاث منازل -> '5.000'

      Parameters

      • inputs: ToFixedDto

        الرقم وعدد المنازل العشرية المراد عرضها

      Returns string

      النص المنسق

      const label = bitbybit.math.toFixed({ number: 3.14159, decimalPlaces: 2 });
      
    • يربط قيمة من 0 إلى 1 بالنطاق من min إلى max على طول منحنى تخفيف، بحيث تتسارع النتيجة أو تتباطأ بدلا من أن تتغير بانتظام.

      منحنى easeIn يبدأ ببطء، ومنحنى easeOut ينتهي ببطء، ومنحنى easeInOut يفعل الاثنين. مثال: 0.5 من [0,100] مع easeInQuad -> 25

      Parameters

      • inputs: EaseDto

        القيمة بين 0 و 1 والنطاق المستهدف ومنحنى التخفيف

      Returns number

      القيمة المخففة في النطاق المستهدف

      const eased = bitbybit.math.ease({ x: 0.5, min: 0, max: 100, ease: Bit.Inputs.Math.easeEnum.easeInQuad });
      
    • يبقي رقما ضمن نطاق: ما دون min يصبح min، وما فوق max يصبح max.

      مثال: 5 في [0,3] -> 3، -1 في [0,3] -> 0، 1.5 في [0,3] -> 1.5

      Parameters

      • inputs: ClampDto

        الرقم والنطاق المراد إبقاؤه فيه

      Returns number

      الرقم، محصورا في النطاق

      const limited = bitbybit.math.clamp({ number: 5, min: 0, max: 3 });
      
    • يمزج من قيمة بداية إلى قيمة نهاية بكسر t: 0 يعطي البداية، و 1 النهاية، و 0.5 نقطة المنتصف.

      قيمة t خارج 0 إلى 1 تستقرئ بعد الطرفين. مثال: 0 إلى 100 عند 0.5 -> 50، 10 إلى 20 عند 0.25 -> 12.5

      Parameters

      • inputs: LerpDto

        قيمة البداية وقيمة النهاية والكسر

      Returns number

      القيمة الممزوجة

      const mid = bitbybit.math.lerp({ start: 10, end: 20, t: 0.25 });
      
    • يجد موقع قيمة بين بداية ونهاية، ككسر: قيمة t التي تحتاجها lerp لإنتاجها.

      مثال: 5 في [0,10] -> 0.5، 2.5 في [0,10] -> 0.25

      Parameters

      • inputs: InverseLerpDto

        قيمة البداية وقيمة النهاية والقيمة المراد تحديد موضعها

      Returns number

      الكسر من البداية إلى النهاية

      const fraction = bitbybit.math.inverseLerp({ start: 0, end: 10, value: 2.5 });
      
    • يحول قيمة من 0 إلى 1 إلى منحنى S ناعم يبدأ وينتهي برفق؛ تُحصر القيمة في ذلك النطاق أولا.

      مثال: 0 -> 0، 0.5 -> 0.5، 0.25 -> 0.156

      Parameters

      Returns number

      القيمة المنعمة بين 0 و 1

    • يخبر بإشارة رقم: -1 عندما يكون سالبا، و 0 عندما يكون صفرا، و 1 عندما يكون موجبا.

      مثال: -5 -> -1، 0 -> 0، 3.14 -> 1

      Parameters

      Returns number

      1 أو 0 أو 1

    • يحتفظ بجزء الرقم الذي يلي الفاصلة العشرية، مقيسا صعودا من الرقم الصحيح الأدنى منه، فتكون النتيجة دائما من 0 حتى 1.

      مثال: 3.14 -> 0.14، -2.3 -> 0.7

      Parameters

      Returns number

      الجزء الكسري، من 0 إلى ما دون 1

    • يلف رقما في نطاق بحيث يدور: بعد max يعود من min، وتحت min يعود من max.

      مفيد للزوايا والأنماط المتكررة؛ على خلاف باقي القسمة العادي يتعامل مع الأرقام السالبة. مثال: 1.5 في [0,1) -> 0.5، -0.3 في [0,1) -> 0.7، 370 في [0,360) -> 10

      Parameters

      • inputs: WrapDto

        الرقم والنطاق المراد لفه فيه

      Returns number

      الرقم الملفوف، من min إلى ما دون max

      const angle = bitbybit.math.wrap({ number: 370, min: 0, max: 360 });
      
    • يرتد بقيمة ذهابا وإيابا بين 0 و length مع نمو t: صعودا إلى length، ثم نزولا إلى 0، ثم مجددا.

      مثال: length 1 عند t 0.5 -> 0.5، t 1 -> 1، t 1.5 -> 0.5، t 2 -> 0

      Parameters

      • inputs: PingPongDto

        القيمة الجارية والطول الذي ترتد ضمنه

      Returns number

      القيمة المرتدة بين 0 و length

      const bounce = bitbybit.math.pingPong({ t: 1.5, length: 1 });
      
    • يحرك قيمة نحو هدف بمقدار maxDelta على الأكثر، دون تجاوزه.

      مثال: 0 نحو 10 بمقدار 3 -> 3، 8 نحو 10 بمقدار 3 -> 10

      Parameters

      • inputs: MoveTowardsDto

        القيمة الحالية والهدف وأكبر خطوة مسموح بها

      Returns number

      القيمة بعد خطوة واحدة

      const next = bitbybit.math.moveTowards({ current: 8, target: 10, maxDelta: 3 });
      
    • يحسب تعبيرا حسابيا بسيطا مكتوبا كنص: أرقام، و +، و -، وعلامة الضرب، و /، وأقواس ومسافات.

      تحلل المكتبة نفسها التعبير وتحسبه، ولا يُسلّم أبدا إلى محرك JavaScript لتشغيله، فهو آمن مع نص كتبه مستخدم. مثال: '(3+2) times 4' مكتوبا بالعلامة -> 20، '10/3' -> 3.3333

      Parameters

      Returns number

      القيمة المحسوبة

      const value = bitbybit.math.evalArithmetic({ expression: "(3 + 2) * 4" });