ما هي الرياضيات وراء تحويل موقع الفأرة للألعاب ذات البلاط على شكل الماس؟

أقوم بتطوير محوري (متساوي القياس ، ولكن مع عرض بزاوية) لعبة مبنية على البلاط.

لدي نظام البلاط يعمل على ما يرام ، وأنا الآن انتقل إلى قضايا الإدخال.

البلاطات لا تتطابق بشكل مرئي (الماس غير المحبوب/المهاجر) مع المنطق وراءها (صفيف).

بين الطرق العديدة التي وجدتها مع "google-fu" ، يبدو أن تطبيق التحويل ("التناوب") على المدخلات هو واحد سهل (سهل الاستخدام).

المشكلة ، بالنسبة لجميع المصادر التي وجدتها ، لا أستطيع فهم ما هي الأرقام القادمة من أين ، ولا ما تفعله الصيغة مع/لهم.

لذا ، أود الحصول على شرح لمعادلة الرياضيات لـ "تحويل Affine" (إذا كان هذا هو الاسم ، لأنني لست متأكداً ...)


إن إجابةYochai_Timmer على هذا السؤال هي أريد أن استخدم ، لكنني لا أفهم أين تأتي القيم من (في الغالب *) ، ولا ما يجري لهم.

[معظمها *]: "28" هو نصف عرض البلاط وارتفاعه الكامل ، "14" نصف ارتفاع ، و "56" كاملة العرض ... ربما ... ولكن هذا إلى حد كبير كل ما حصلت عليه منه ، صحيح جدا أم لا ، ما زلت لا تزال عالقة على أي حال.


في حال كان ذلك يساعدك على إعطاء إجابة أكثر وضوحًا ، فإن البلاط الخاص بي هو 80 width بواسطة 46 height ، وأقوم بتطبيق (تقديم) بنفس الطريقة (أعلى يوجد ركن من بلاط 1x2y في وسط البلاط 1x1y ، وهكذا ...)

أيضا ، ما أقوم به هو جافا و API هو Slick2D. إذا كنت تعرف أي وظائف/فئات مخفية تساعد في رياضيات الصيغة (مثل: Math.sen() أو Math.cos() أو ...) أو المشكلة بشكل عام ، أنتم مدعوون إلى الإشارة إليها أيضًا ، فقد تساعدني كثيرًا.

0
الكلمة الرئيسية التي تبحث عنها هي "isometric perspective" . على وجه التحديد ، راجع هذا السؤال
وأضاف المؤلف BlueRaja - Danny Pflughoeft, مصدر
مقصاتان ومقياس.
وأضاف المؤلف Ignacio Vazquez-Abrams, مصدر

1 إجابة

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

  +-----+
  |     |
  |     |
  +-----+

بالنظر إلى هذه الساحة ، يمكنك التفكير في اثنين من المتجهات التي تحدد معنى "up" و "right" بمجرد أخذ جانبين من الساحة:

  +-----+     ^
  |     |     |
  |     |     |
  +-----+     +----->

دعونا نطلق على هذه المتجهات i و j. يمكنك تخيل تحويل هذه الساحة إلى ماس بتدوير المربع. إذا قمت بذلك ، يمكنك التفكير في ما يحدث لهذين المتجهين i و j:

   /\          ^
 / \        /
/   \      /
 \   /     \
  \ /       \
   \/          >

لاحظ كيف تم استدارة i و j وتغيير حجمها قليلاً.

الخدعة وراء الرياضيات لتحديد ما هي نقطة مربع في إطار هذا العرض هو محاولة لعكس هذه العملية. بدلًا من البدء بـ i و j العادي وتنتهي مع الموجات المنحرفة/المتدحرجة ، عليك أن تبدأ بتدوير i و j المتدحرج ، ثم حاول تحت التحول لتحويل العالم مرة أخرى إلى شبكة مربعة لطيفة. العمليات الحسابية التي تقوم بها تعمل بالقول "بالنظر إلى أن الماوس في الموضع (س ، ص) في الإسقاط ، ما التنسيق (س '، ص') هل سيكون ذلك إذا قمنا بإلغاء هذا التحول؟" كل الرياضيات وراء هذا هو الجبر الخطي القياسي للتحويل بين مساحتين إحداثيتين. للحصول على وصف لكيفية القيام بذلك ، يمكنك قراءة مقالة ويكيبيديا حول مصفوفات التحويل ، والتي تصف كيف هذه العملية تعمل.

أتمنى أن يساعدك هذا!

0
وأضاف
أفهم المفهوم ، ما لا أفهمه هو الرياضيات! ترتبط صفحة wiki هذه بالفعل في التعليق الثاني من @ Yochai_Timmer. ما زلت لا أعرف ، في الإجابة لا @ Yochai_Timmer ولا صفحة الويكي ، ما هي القيم ما ناقلات/موازين؟ كان الأقرب إلى الجبر الذي حصلت عليه في أي وقت مضى هو حساب "sens، cos'es and tans" من مثلثات بسيطة، ولغتي الطبيعية هي البرتغالية لتتغلب عليها. القصة القصيرة قصيرة ، لا أعتقد أن سوء فهم معنى تلك [...] الأشياء في أي وقت قريب ، إلا إذا كان شخص ما يكسرها ويشرح ...
وأضاف المؤلف XenoRo, مصدر
ستحتاج إلى دراسة الجبر الخطي غير الأولي لفهم هذه الأشياء. ننظر إلى مصفوفات التحول ، وخاصة.
وأضاف المؤلف Zéychin, مصدر