سؤال

هل هناك طريقة لرسم/ملاءمة قطع رباعية بسيطة من صورة على مستطيل محاور قياسي لعرض الشاشة. (بحيث يتم تشويه القطع لملء نقاط المستطيل). يبدو لي أنه يجب أن يكون ذلك ممكنًا مع صورة فوتش ، لكن لا يمكنني رؤيته تمامًا.

هل كانت مفيدة؟

المحلول

نعم ، لكنه يتراوح من السهل للغاية إلى الصعوبة إلى حد ما اعتمادًا على الرباعي.

مستطيل محاذاة

إذا كان الرباعي هو مستطيل محاذاة مع المحاور ، فيمكنك استخدام CropptbitMap.

مستطيل غير محدد أو غيره من المتوازي

إذا كان الرباعي هو متوازي متوازي تجريبي (بما في ذلك المستطيلات) ، فيمكنك استخدام التحويلات لتحديد زوايا Quatrilateral إلى حدود المستطيل وتعيين cliptobounds = "true" بحيث يظهر فقط القطع.

<Decorator ClipToBounds="true">
  <Rectangle Fill="{StaticResource SourceImage}" RenderTransform="1 0 0 1 0 0" />
</Decorator>

عن طريق تغيير معلمات المصفوفة على RenderTransform يمكن تعيين أي متوازي متوازي على المستطيل. الجبر البسيط سوف يعطي التفاصيل. فقط قم بتوصيل أي زوايا ثلاثية من المتوازي في معادلة تحويل المصفوفة وحل معلمات التحويل الست.

الرباعي التعسفي

إذا لم يكن الرباعي متوازيًا ، فستحتاج إلى استخدام تحويل غير متاح غير متوفر في رسومات WPF ثنائية الأبعاد. ومع ذلك ، فهو متوفر في النظام ثلاثي الأبعاد: ستحتاج إلى إنشاء أربعة كائنات متداخلة:

  • meshgeometry3d لتحديد شكل المستطيل داخل أ
  • GeometryModel3D لتحديد المادة (صورتك) داخل أ
  • ModelVisual3D لتحديد التحويل الخاص بك داخل أ
  • ViewPort3Dvavual لتحديد الكاميرا والمنفذ الخاص بك.

مدونة تشارلز بيتزولد لديه الحسابات للحل ثلاثي الأبعاد.

نصائح أخرى

إذا كنت تقصد أنك تريد إظهار صورة اقتصاص ، يمكنك استخدامها CroppedBitmap.

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