جعل العناصر 'غير قابلة للتحديد' في جوينتجس

StackOverflow https://stackoverflow.com//questions/22023770

  •  21-12-2019
  •  | 
  •  

سؤال

لقد استخدمت جوينتجس مكتبة تخطيطية في أحد مشروعي.

1) أشعر بالفضول لمعرفة ما إذا كان يوفر أي طريقة لتقييد المستخدمين بعدم اللعب بعناصر الرسم التخطيطي.ما أعنيه هو:سيكون المستخدم قادرا على رؤية الرسم التخطيطي كصورة بدلا من التفاعل معه مثل تغيير الحجم وتغيير الموضع وسحب الروابط وما إلى ذلك.

2) بلدي التطبيق يعتمد على ذلك بشكل سيء.على الرغم من أنني قد حلت مسألة تخطيط السيارات, ولكن هل هذا ممكن مع جوينتجس, يمكننا أن نقول فقط ليب أننا نريد هذه العناصر والاشياء ويرجى مساعدتنا في جعل الرسم البياني مع أفضل مناسبة, العناصر غير المتصادمة ومع الحد الأدنى لعدد الروابط التي تصطدم مع بعضها البعض ومع العناصر في طريقها إذا كانت الروابط خطوط مستقيمة مستمرة ?

3) أخيرا ، أريد أن أعرف ما إذا كان بإمكاننا التحقق من الروابط التي تصطدم بعناصر أخرى أو مع روابط أخرى في نفس الرسم التخطيطي.وأنا أعلم أنه من الممكن في حالة العناصر.

if (element1.getBBox().intersect(element2.getBBox())) {
    // elements intersect
}
هل كانت مفيدة؟

المحلول

1) استخدم إما new joint.dia.Paper({ interactive: false, ... }) أو تعيين مؤشر الأحداث المغلق الملكية إلى لا شيء مباشرة على الورق: paper.$el.css('pointer-events', 'none')

2) يمكنك استخدام المفصل.تخطيط.البرنامج المساعد ديركتيدغراف.هذا البرنامج المساعد للتحميل هنا: http://jointjs.com/download وبلوق وظيفة واصفا هو هنا: http://www.daviddurman.com/automatic-graph-layout-with-jointjs-and-dagre.html.

3) هذا ليس سهلا بشكل عام.أود أن أشير لك إلى هذا الموقع للحصول على مثال على تقاطع الحوسبة بين مسارين: http://www.kevlindev.com/geometry/2D/intersections/intersect_bezier2_bezier2.svg.هنا هو مكتبة للتحميل ثم: http://www.kevlindev.com/gui/math/intersection/index.htm

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top