עבור לתוכן

(java) סיבוב אובייקט בCanvas לפי מעלות.

Featured Replies

פורסם

יש לי עבודת קיץ ואחת המשימות היא "סיבוב האובייקט ב- °90 או °180 או °270":
משימה I - אובייקטים וגרפיקה

1. הגדר/י אובייקט חדש, המורכב מאוסף של לפחות 7 צורות גיאומטריות , למשל בית.

2. האובייקט יכלול את הפעולות הבאות:
הזזת האובייקט למיקום ידוע חדש.

 

  • הזזת האובייקט במרחק מסויים מהמיקום הקודם. הפעולה תקבל שני פרמטרים dx ו- dy.
  • העתקת האובייקט למיקום חדש.
  • סיבוב האובייקט ב- °90 או °180 או °270.
  • פעולה המקבלת שני אובייקטים , מחזירה 'אמת' אם שניהם זהים , אחרת מחזירה 'שקר'.
  • בונוס: הגדלת/הקטנת האובייקט לפי קנ"מ (scale ) מסויים.



3. נתונות הצורות גיאומטריות הבאות:
 

  • ריבוע – Square. · מעגל – Circle. · קו – Line.
  • משולש – Triangle. · משולש – Text. · Canvas – ("הבד") החלון הגרפי.
  • Mouse – לא חובה להשתמש/רשות.



4. נתונה תכנית ראשית לדוגמה בשם: GraphicsObjects.

5. בעבודה יש להוסיף רק 2 class-ים (האובייקט החדש שלכם ותכנית ראשית שלכם שמריצה את האובייקט).

6. הערה: יינתן בונוס על יצירתיות – ניתן להגדיר אנימציה.



והצלחתי בערך לסובב את זה במעלות הדרושות לפי שמירה של המרחק של האובייקט מ0,0 ואז אני יכול למחוק את האובייקט, ליצור אובייקט חדש ב0,0 עם אותם תכונות רק מסובב במעלות הדרושות. אבל את הסיבוב הזה עשיתי פשוט לפי ניסוי וטעייה ופשוט שיחקתי עם הx והy של כל צורה עד שהגעתי לצורה המסובבת. אבל יש דרך יותר פשוטה לעשות את זה לפי הכלים הנתונים? לפי מה שאני רואה הקוד בנוי לפי Canvas (קוד מדוייק של הCanvas הספציפי הזה: https://pastebin.com/6vtuGChq ), אבל לא למדנו את התכונות של הCanvas ואת המשתנים שמגדירים אותו (למשל Image או Graphics2D). אשמח לכיוון אולי לאיך אפשר לגשת לזה, או הצעות לשיפור, הקוד שכתבתי עד עכשיו: https://pastebin.com/7XK5EiLP

תודה, דוקסי.

פורסם

Java או JavaScript?

פורסם
  • מחבר
ציטוט של etal

Java או JavaScript?

לא כל כך יודע מה ההבדל אבל במחשבה שנייה נדמה לי שזה Java. שלחתי גם שני קודים אז אני משער שקל לזהות לפי איך שהקודים בנויים.

פורסם

אתה כותב ב-Java. ממה שאני מבין, אין לך דרך לסובב את הקנבס, אז אתה צריך לעשות את השינויים הרלוונטים לצורות המרכיבות את האובייקט שלך בעצמך.

 

בגלל שהבעיה שלך מאוד מוגבלת, אתה יכול לחשב מראש (עם דף ועט וקצת חשבון) מה המיקומים החדשים שצריכים להיות לכל צורה בכל אחד מ-4 המצבים שהאובייקט שלך אמור להיות בהם (מצב התחלתי, מסובב ב-90 מעלות, מסובב ב- 180 מעלות ומסובב ב-270 מעלות), ואז לשים את זה בקוד, ולהעביר לקונפיגורציה המתאימה בהתאם לסיבוב.

 

כמובן, אפשר לפתור את זה בצורה כללית יותר, אבל זה סתם אוברקיל. זה תרגיל פשוט, ועדיף שתשאיר אותו כזה.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים