Bitbybit Docs
    Preparing search index...

    Class OCCTTransforms

    نقل أشكال OpenCascade وتدويرها وتحجيمها وعكسها مرآتيا، وبناء مصفوفات 4x4 التي تصف مثل هذه الحركات. تعيد كل دالة شكلا جديدا وتترك المدخل كما كان. الزوايا بالدرجات، والمسافات بوحدات النموذج، ويمر محور التدوير بنقطة الأصل ما لم تأخذ الدالة مركزا. المصفوفات 16 رقما بترتيب الأعمدة (يقع النقل عند الفهارس من 12 إلى 14)؛ وتطبق قائمة المصفوفات من الأولى إلى الأخيرة كحركة مركبة واحدة، وهكذا يتكامل transformByMatrix مع بانيات ...ToMatrix.

    Index

    Constructors

    by matrix

    • يطبق مصفوفة 4x4، أو قائمة مصفوفات تُطبق من الأولى إلى الأخيرة، على شكل.

      المصفوفة بترتيب الأعمدة، فيقع النقل في الفهارس من 12 إلى 14. يُسمح بمصفوفة تمط أو تقص؛ ابن المصفوفات بطرق ...ToMatrix وركّبها بـ multiplyTransforms. المصفوفة التي لا تستطيع النواة تطبيقها ترمي خطأ.

      Parameters

      Returns Promise<TopoDSShapePointer>

      الشكل المحوّل

      const move = await bitbybit.occt.transforms.translationToMatrix({ translation: [10, 0, 0] });
      const turn = await bitbybit.occt.transforms.rotationAxisAngleToMatrix({ axis: [0, 1, 0], angle: 90, center: [0, 0, 0] });
      const placed = await bitbybit.occt.transforms.transformByMatrix({ shape: box, transformation: [turn, move] });
    • يطبق مصفوفة 4x4 نفسها، أو قائمة مصفوفات تُطبق من الأولى إلى الأخيرة، على عدة أشكال، كما تفعل transformByMatrix لشكل واحد.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      الأشكال المحوّلة، بالترتيب نفسه

      const moved = await bitbybit.occt.transforms.transformShapesByMatrix({ shapes: [box, sphere], transformation: matrix });
      
    • يقرأ الوضع الذي يحمله شكل، التحويل المخزن عليه لا المدمج في هندسته، كمصفوفة مع نقلها ورباعي تدويرها وتحجيمها المنتظم.

      الشكل الموضوع بـ align أو عبر تجميع يحمل مثل هذا الوضع؛ ومعظم الطرق الأخرى هنا تدمج النقل في الهندسة، ومثل هذا الشكل يبلغ عن مصفوفة الوحدة.

      Parameters

      Returns Promise<ShapeTransformInfo>

      المصفوفة والنقل والرباعي بصيغة [x, y, z, w] والتحجيم

      const placement = await bitbybit.occt.transforms.getShapeTransform({ shape: movedBox });
      console.log(placement.translation, placement.scale);

    matrix builders

    • يبني مصفوفة الوحدة، التحويل الذي لا يغير شيئا، كنقطة بداية لتركيب غيرها.

      Returns Promise<TransformMatrix>

      مصفوفة الوحدة، بترتيب الأعمدة

      const identity = await bitbybit.occt.transforms.identityTransform();
      
    • يبني مصفوفة واحدة من نقل وثلاث زوايا تدوير بالدرجات حول X و Y و Z وتحجيم منتظم.

      يُطبق التحجيم أولا، ثم التدويرات (Z أولا، ثم Y، ثم X)، ثم النقل، وهو الترتيب الذي تستخدمه أوضاع التجميع. أي جزء متروك يُعد بلا تغيير.

      Parameters

      • inputs: ComposeTransformDto

        النقل وزوايا التدوير الثلاث بالدرجات ومعامل التحجيم

      Returns Promise<TransformMatrix>

      المصفوفة المركبة، بترتيب الأعمدة

      const placement = await bitbybit.occt.transforms.composeTransform({ translation: [10, 0, 0], rotation: [0, 90, 0], scale: 1 });
      
    • يطوي قائمة مصفوفات في مصفوفة واحدة، تُطبق من الأولى إلى الأخيرة، فتصبح سلسلة الحركات مصفوفة واحدة.

      تُعاد المصفوفة الواحدة دون تغيير والقائمة الفارغة تعطي مصفوفة الوحدة.

      Parameters

      Returns Promise<TransformMatrix>

      المصفوفة المركبة، بترتيب الأعمدة

      const combined = await bitbybit.occt.transforms.multiplyTransforms({ transformation: [turn, move] });
      
    • يعكس مصفوفة، معطيا التحويل الذي يلغيها: تطبيق مصفوفة ثم معكوسها يعيد الشكل إلى حيث كان.

      Parameters

      Returns Promise<TransformMatrix>

      المصفوفة المعكوسة، بترتيب الأعمدة

      const back = await bitbybit.occt.transforms.invertTransform({ transformation: placement });
      
    • يبني مصفوفة النقل بمتجه، بوحدات النموذج.

      Parameters

      Returns Promise<TransformMatrix>

      مصفوفة النقل، بترتيب الأعمدة

      const move = await bitbybit.occt.transforms.translationToMatrix({ translation: [10, 0, 0] });
      
    • يبني مصفوفة التدوير بزاوية بالدرجات حول محور، يمر بنقطة الأصل أو بنقطة مركز اختيارية.

      يتبع التدوير قاعدة اليد اليمنى حول axis.

      Parameters

      • inputs: RotationAxisAngleToMatrixDto

        اتجاه المحور والزاوية بالدرجات والنقطة الاختيارية التي يمر بها المحور

      Returns Promise<TransformMatrix>

      مصفوفة التدوير، بترتيب الأعمدة

      const turn = await bitbybit.occt.transforms.rotationAxisAngleToMatrix({ axis: [0, 1, 0], angle: 90, center: [5, 0, 5] });
      
    • يبني مصفوفة التحجيم المنتظم بمعامل حول نقطة الأصل أو نقطة مركز اختيارية.

      Parameters

      • inputs: ScaleUniformToMatrixDto

        المعامل والنقطة الاختيارية التي يتم التحجيم حولها

      Returns Promise<TransformMatrix>

      مصفوفة التحجيم، بترتيب الأعمدة

      const grow = await bitbybit.occt.transforms.scaleUniformToMatrix({ factor: 2, center: [0, 0, 0] });
      
    • يبني مصفوفة الانعكاس المرآتي عبر نقطة، التحويل الذي تطبقه mirrorAboutPoint.

      Parameters

      Returns Promise<TransformMatrix>

      مصفوفة الانعكاس المرآتي، بترتيب الأعمدة

      const invert = await bitbybit.occt.transforms.mirrorPointToMatrix({ point: [0, 0, 0] });
      
    • يبني مصفوفة الانعكاس المرآتي عبر خط، التحويل الذي تطبقه mirror: المحور المار بـ origin على طول direction.

      Parameters

      Returns Promise<TransformMatrix>

      مصفوفة الانعكاس المرآتي، بترتيب الأعمدة

      const flip = await bitbybit.occt.transforms.mirrorAxisToMatrix({ origin: [0, 0, 0], direction: [0, 1, 0] });
      
    • يبني مصفوفة الانعكاس المرآتي عبر مستوى، التحويل الذي تطبقه mirrorAlongNormal: المستوى المار بـ origin بالناظم المعطى.

      Parameters

      Returns Promise<TransformMatrix>

      مصفوفة الانعكاس المرآتي، بترتيب الأعمدة

      const reflect = await bitbybit.occt.transforms.mirrorPlaneToMatrix({ origin: [0, 0, 0], normal: [1, 0, 0] });
      
    • يبني مصفوفة التدوير لرباعي معطى بصيغة [x, y, z, w].

      يُطبّع الرباعي أولا، فلا يهم طوله.

      Parameters

      Returns Promise<TransformMatrix>

      مصفوفة التدوير، بترتيب الأعمدة

      const turn = await bitbybit.occt.transforms.quaternionToMatrix({ quaternion: [0, 0.7071, 0, 0.7071] });
      

    on shapes

    • يطبق transform على عدة أشكال، كل منها بنقله ومحور تدويره وزاويته ومعامل تحجيمه الخاصة.

      يجب أن يكون لكل القوائم الطول نفسه، وإلا رُمي خطأ.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      الأشكال المحوّلة، بالترتيب نفسه

      const moved = await bitbybit.occt.transforms.transformShapes({
      shapes: [box, sphere],
      translations: [[10, 0, 0], [-10, 0, 0]],
      rotationAxes: [[0, 1, 0], [0, 1, 0]],
      rotationAngles: [45, 0],
      scaleFactors: [1, 2],
      });
    • يطبق rotate على عدة أشكال، كل منها حول محوره الخاص المار بنقطة الأصل وبزاويته الخاصة بالدرجات.

      يجب أن يكون لكل القوائم الطول نفسه، وإلا رُمي خطأ.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      الأشكال المدوّرة، بالترتيب نفسه

      const turned = await bitbybit.occt.transforms.rotateShapes({ shapes: [box, sphere], axes: [[0, 1, 0], [1, 0, 0]], angles: [90, 45] });
      
    • يطبق rotateAroundCenter على عدة أشكال، كل منها بزاويته الخاصة بالدرجات ومركزه ومحوره.

      يجب أن يكون لكل القوائم الطول نفسه، وإلا رُمي خطأ.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      الأشكال المدوّرة، بالترتيب نفسه

      const turned = await bitbybit.occt.transforms.rotateAroundCenterShapes({
      shapes: [box, sphere],
      angles: [90, 45],
      centers: [[5, 0, 5], [0, 0, 0]],
      axes: [[0, 1, 0], [0, 1, 0]],
      });
    • يطبق align على عدة أشكال، كل منها بإطاري المصدر والهدف الخاصين به.

      يجب أن يكون لكل القوائم الطول نفسه، وإلا رُمي خطأ.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      الأشكال المحاذاة، بالترتيب نفسه

      const placed = await bitbybit.occt.transforms.alignShapes({
      shapes: [cylinder, cylinder2],
      fromOrigins: [[0, 0, 0], [0, 0, 0]],
      fromDirections: [[0, 1, 0], [0, 1, 0]],
      toOrigins: [[10, 0, 0], [20, 0, 0]],
      toDirections: [[1, 0, 0], [0, 0, 1]],
      });
    • يطبق alignAndTranslate على عدة أشكال، كل منها باتجاهه ومركزه الخاصين.

      يجب أن يكون لكل القوائم الطول نفسه، وإلا رُمي خطأ.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      الأشكال الموضوعة، بالترتيب نفسه

      const placed = await bitbybit.occt.transforms.alignAndTranslateShapes({
      shapes: [profile, profile2],
      directions: [[1, 0, 0], [0, 0, 1]],
      centers: [[10, 0, 0], [0, 0, 10]],
      });
    • يطبق translate على عدة أشكال، كل منها بمتجهه الخاص.

      يجب أن يكون للقائمتين الطول نفسه، وإلا رُمي خطأ.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      الأشكال المنقولة، بالترتيب نفسه

      const moved = await bitbybit.occt.transforms.translateShapes({ shapes: [box, sphere], translations: [[10, 0, 0], [-10, 0, 0]] });
      
    • يطبق scale على عدة أشكال، كل منها بانتظام حول نقطة الأصل بمعامله الخاص.

      يجب أن يكون للقائمتين الطول نفسه، وإلا رُمي خطأ.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      الأشكال المحجّمة، بالترتيب نفسه

      const scaled = await bitbybit.occt.transforms.scaleShapes({ shapes: [box, sphere], factors: [2, 0.5] });
      
    • يطبق scale3d على عدة أشكال، كل منها بمعاملاته الثلاثة ومركزه الخاصة.

      يجب أن يكون لكل القوائم الطول نفسه، وإلا رُمي خطأ.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      الأشكال المحجّمة، بالترتيب نفسه

      const scaled = await bitbybit.occt.transforms.scale3dShapes({
      shapes: [box, sphere],
      scales: [[1, 2, 1], [2, 2, 2]],
      centers: [[0, 0, 0], [10, 0, 0]],
      });
    • يطبق mirror على عدة أشكال، كل منها عبر محوره الخاص.

      يجب أن يكون لكل القوائم الطول نفسه، وإلا رُمي خطأ.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      الأشكال المعكوسة مرآتيا، بالترتيب نفسه

      const flipped = await bitbybit.occt.transforms.mirrorShapes({
      shapes: [box, sphere],
      origins: [[0, 0, 0], [0, 0, 0]],
      directions: [[0, 1, 0], [1, 0, 0]],
      });
    • يطبق mirrorAlongNormal على عدة أشكال، كل منها عبر مستواه الخاص.

      يجب أن يكون لكل القوائم الطول نفسه، وإلا رُمي خطأ.

      Parameters

      Returns Promise<TopoDSShapePointer[]>

      الأشكال المعكوسة مرآتيا، بالترتيب نفسه

      const others = await bitbybit.occt.transforms.mirrorAlongNormalShapes({
      shapes: [leftArm, leftLeg],
      origins: [[0, 0, 0], [0, 0, 0]],
      normals: [[1, 0, 0], [1, 0, 0]],
      });

    on single shape

    • يحجّم شكلا ويدوّره وينقله دفعة واحدة: أولا التحجيم حول نقطة الأصل، ثم التدوير حول محور يمر بنقطة الأصل، ثم النقل.

      ولأن التحجيم والتدوير يحدثان حول نقطة الأصل، فإن الشكل الذي ليس هناك يدور حولها أيضا؛ انقله أولا، أو استخدم rotateAroundCenter و scale3d لمركز مختار.

      Parameters

      Returns Promise<TopoDSShapePointer>

      الشكل المحوّل

      const moved = await bitbybit.occt.transforms.transform({
      shape: box,
      translation: [10, 0, 0],
      rotationAxis: [0, 1, 0],
      rotationAngle: 45,
      scaleFactor: 2,
      });
    • يدوّر شكلا حول محور يمر بنقطة الأصل، بزاوية بالدرجات.

      يتبع التدوير قاعدة اليد اليمنى: مع الإبهام على طول axis، تبين الأصابع الاتجاه الموجب. الشكل البعيد عن نقطة الأصل يدور حولها؛ rotateAroundCenter يدوّر حول نقطة مختارة بدلا من ذلك.

      Parameters

      Returns Promise<TopoDSShapePointer>

      الشكل المدوّر

      const turned = await bitbybit.occt.transforms.rotate({ shape: box, axis: [0, 1, 0], angle: 90 });
      
    • يدوّر شكلا حول محور يمر بنقطة مختارة، بزاوية بالدرجات.

      يُنقل الشكل بحيث تقع النقطة عند نقطة الأصل، ويُدوّر هناك بقاعدة اليد اليمنى حول axis، ثم يُعاد إلى مكانه.

      Parameters

      Returns Promise<TopoDSShapePointer>

      الشكل المدوّر

      const turned = await bitbybit.occt.transforms.rotateAroundCenter({ shape: box, angle: 90, center: [5, 0, 5], axis: [0, 1, 0] });
      
    • ينقل شكلا بحيث تحط نقطة واتجاه عليه على نقطة واتجاه آخرين: يُحمل الإطار fromOrigin مع fromDirection إلى toOrigin مع toDirection.

      هذه هي الطريقة لإيقاف شكل على سطح أو توجيهه على طول خط: يُنقل الشكل ويُدار معا، ولا يُحجّم أبدا.

      Parameters

      • inputs: AlignDto<TopoDSShapePointer>

        الشكل والنقطة والاتجاه المأخوذ منهما والنقطة والاتجاه المراد الوصول إليهما

      Returns Promise<TopoDSShapePointer>

      الشكل المحاذى

      const standing = await bitbybit.occt.transforms.align({
      shape: cylinder,
      fromOrigin: [0, 0, 0],
      fromDirection: [0, 1, 0],
      toOrigin: [10, 5, 0],
      toDirection: [1, 0, 0],
      });
    • ينقل شكلا بحيث يحط إطار كامل عليه على إطار آخر: نقطة وناظمها ومحور واحد في مستوى ذلك الناظم تُحمل إلى أهدافها.

      حيث تثبت align اتجاها واحدا وتترك الدوران حوله حرا، تثبت هذه الدالة الدوران أيضا، وهو ما يهم للأشكال غير المستديرة حول محورها.

      Parameters

      • inputs: AlignNormAndAxisDto<TopoDSShapePointer>

        الشكل والنقطة والناظم والمحور المأخوذ منها والنقطة والناظم والمحور المراد الوصول إليها

      Returns Promise<TopoDSShapePointer>

      الشكل المحاذى

      const placed = await bitbybit.occt.transforms.alignNormAndAxis({
      shape: bracket,
      fromOrigin: [0, 0, 0],
      fromNorm: [0, 1, 0],
      fromAx: [1, 0, 0],
      toOrigin: [10, 0, 0],
      toNorm: [0, 0, 1],
      toAx: [0, 1, 0],
      });
    • يدير شكلا بحيث يشير محوره Y على طول direction، ثم ينقله إلى center.

      الأشكال المسطحة والأشكال الأولية في هذه الحزمة تُبنى على الأرضية مع Y للأعلى، فهذا هو الاستدعاء الوحيد الذي يضع أيا منها: يصبح الاتجاه اتجاهها الجديد للأعلى، والمركز حيث تقع.

      Parameters

      Returns Promise<TopoDSShapePointer>

      الشكل الموضوع

      const placed = await bitbybit.occt.transforms.alignAndTranslate({ shape: profile, direction: [1, 0, 0], center: [10, 0, 0] });
      
    • يحجّم شكلا بانتظام حول نقطة الأصل بمعامل.

      الشكل البعيد عن نقطة الأصل يبتعد عنها أو يقترب منها أيضا؛ scaleFromCenter يحجّم حول نقطة مختارة و scale3d يحجّم كل محور بمعامله الخاص.

      Parameters

      Returns Promise<TopoDSShapePointer>

      الشكل المحجّم

      const bigger = await bitbybit.occt.transforms.scale({ shape: box, factor: 2 });
      
    • يحجّم شكلا بمعامل منفصل على طول X و Y و Z، حول نقطة مركز مختارة.

      المعاملات غير المتساوية تمط الشكل، مما يحول الدوائر إلى قطوع ناقصة ويمكن أن يجعل العمليات اللاحقة، مثل التقويسات، أبطأ أو يفشلها؛ أبق المعاملات متساوية عندما لا يحتاج الشكل إلا إلى النمو.

      Parameters

      Returns Promise<TopoDSShapePointer>

      الشكل المحجّم

      const stretched = await bitbybit.occt.transforms.scale3d({ shape: box, scale: [1, 2, 1], center: [0, 0, 0] });
      
    • يعكس شكلا مرآتيا عبر خط: المحور المار بـ origin على طول direction.

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

      Parameters

      Returns Promise<TopoDSShapePointer>

      الشكل المعكوس مرآتيا

      const flipped = await bitbybit.occt.transforms.mirror({ shape: box, origin: [0, 0, 0], direction: [0, 1, 0] });
      
    • يعكس شكلا مرآتيا عبر مستوى معطى بنقطة عليه وناظمه.

      هذه هي الصورة المرآتية المعتادة، من النوع الذي يحتاجه الجزء المتناظر؛ تُقلب النتيجة من الداخل إلى الخارج بمعنى أن الشكل الأيسر يصبح أيمن.

      Parameters

      Returns Promise<TopoDSShapePointer>

      الشكل المعكوس مرآتيا

      const other = await bitbybit.occt.transforms.mirrorAlongNormal({ shape: leftHalf, origin: [0, 0, 0], normal: [1, 0, 0] });
      
    • يحجّم شكلا بانتظام حول نقطة مختارة بمعامل.

      تبقى النقطة في مكانها ويبتعد كل شيء آخر عنها أو يقترب منها.

      Parameters

      Returns Promise<TopoDSShapePointer>

      الشكل المحجّم

      const bigger = await bitbybit.occt.transforms.scaleFromCenter({ shape: box, factor: 2, center: [5, 0, 5] });
      
    • يعكس شكلا مرآتيا عبر نقطة: تحط كل نقطة من الشكل على بعد ما بعد النقطة بقدر ما كانت قبلها، على الجانب المقابل.

      تُقلب النتيجة من الداخل إلى الخارج، كما تحول المرآة المستوية اليد اليسرى إلى يمنى.

      Parameters

      Returns Promise<TopoDSShapePointer>

      الشكل المعكوس مرآتيا

      const inverted = await bitbybit.occt.transforms.mirrorAboutPoint({ shape: box, point: [0, 0, 0] });
      
    • يدوّر شكلا حول نقطة الأصل برباعي معطى بصيغة [x, y, z, w].

      يُطبّع الرباعي أولا، فلا يهم طوله. الرباعيات هي ما تعطيه مكتبات التحريك والفيزياء، فهذا يوفر تحويلها إلى محور وزاوية.

      Parameters

      Returns Promise<TopoDSShapePointer>

      الشكل المدوّر

      const turned = await bitbybit.occt.transforms.rotateByQuaternion({ shape: box, quaternion: [0, 0.7071, 0, 0.7071] });