ABA


"סיבוב (Rotation) בשפת C (עזרה)"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #8990 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 8990
liranh  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 16.6.09
4157 הודעות, 1 פידבק
   22:08   31.01.03   
אל הפורום  
  סיבוב (Rotation) בשפת C (עזרה)  
 
   עבר עריכה לאחרונה בתאריך 31.01.03 בשעה 22:09
 
מישהו יכול להסביר לי איך אני מסובב צורה בשפת C?
הצורה מצויירת כפוליגון, בעזרת הפונקציה drawpoly, לפי מערך של קורדינאטות X,Y.
במקרה שלי (משחק שאני בונה כפרוייקט סיום י"ב 3 יח"ל גרפיקה ממוחשבת)-
object{21}{24}

שמייצג 21 צורות (אובייקטים) בלי 24 קורדינאטות (x,y,x,y... וכו') כל אחד.
עכשיו- איך אני משנה את הקורדינאטות של צורה מסויימת שיהיה מסובב בזווית מסויימת?

תודה מראש.


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  הסבר: dryice 31.01.03 22:30 1
     אההה נכון צודק תודה !! liranh  31.01.03 22:31 2
     אחי לא הבנתי משהו.. liranh  02.02.03 17:11 6
  נקווה שאתה עושה 5 מתמטיקה, Quant86 01.02.03 00:20 3
     אני ב-4 יחידות מתמטיקה. liranh  02.02.03 13:02 4
     זאת שיטה עלובה למצוא את המרכז! dryice 02.02.03 14:08 5
         פתרון יותר טוב (אני מניח) liranr 02.02.03 18:16 7
             זה ברור. liranh  02.02.03 20:56 8
                 בשביל האחר כך צריך קצת מתמטיקה liranr 03.02.03 09:36 9
                     אחי תודה- כנס liranh  03.02.03 11:53 10
                         בוא נפתח ביחד: dryice 03.02.03 14:54 11
                         שני דברים liranr 03.02.03 15:39 12
                             תודה לשניכם!! liranh  04.02.03 07:47 13

       
dryice

   22:30   31.01.03   
אל הפורום  
  1. הסבר:  
בתגובה להודעה מספר 0
 
   אתה למעשה צריך לסובב פוליגון, אתה ראשית צריך להחליט סביב איזו נקודה
אתה מסובב אותו. אם אתה אומר מרכז הפוליגון אתה צריך להחליט לאיזה
מן מרכז אתה מתכוון.

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

DRYICE


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
liranh  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 16.6.09
4157 הודעות, 1 פידבק
   22:31   31.01.03   
אל הפורום  
  2. אההה נכון צודק תודה !!  
בתגובה להודעה מספר 1
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
liranh  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 16.6.09
4157 הודעות, 1 פידבק
   17:11   02.02.03   
אל הפורום  
  6. אחי לא הבנתי משהו..  
בתגובה להודעה מספר 1
 
   כן, אני צריך לסובב את הצורה באותו מקום שהיא עומדת.
לא הבנתי איך התכוונת שאני אעשה את השינוי לקורדינאטות ע"י שימוש בווקטור...
לא הבנתי מה כוונתך.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Quant86

   00:20   01.02.03   
אל הפורום  
  3. נקווה שאתה עושה 5 מתמטיקה,  
בתגובה להודעה מספר 0
 
   עבר עריכה לאחרונה בתאריך 01.02.03 בשעה 00:30
 
הפתרון פשוש, תעביר את הקואורדנות להצגה פולארית, כלומר כל נקודה, תחשב מה הרדיוס שלה, ומה הזווית שלה, ואז תוסיף זווית כלשהי, לכל אחד מהקודקודים ותעביר בחזרה להצגה קרטזית או איך שלא קוראים לזה, עם X ו Y....
אהה כן, והכל יחסית לאמצא של הצורה, שיכול להיות נגיד הממוצע של כל הקואורדנות, תחשבן את הX הממוצע, את הY הממוצע, ותחשב את השאר כאילו וזה היה האמצע, זה בעצם כמו הגדלה....

שיט דרייס לא שמתי לב שענית, תגיד איך התכוונת לעשות את זה בוקטורים? להגדיר מה זו מכלפה סקאלרית? זה יוצא בסופו של דבר מלא הגדרות רק של וקטורים לא?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
liranh  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 16.6.09
4157 הודעות, 1 פידבק
   13:02   02.02.03   
אל הפורום  
  4. אני ב-4 יחידות מתמטיקה.  
בתגובה להודעה מספר 3
 
   אני אנסה ליישם את מה שאמרת, תודה אחי.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dryice

   14:08   02.02.03   
אל הפורום  
  5. זאת שיטה עלובה למצוא את המרכז!  
בתגובה להודעה מספר 3
 
   שכן הרבה קודקודים צפופים בצד אחד ימשכו את הממוצע ללא שום קשר
לצורה האמיתית. תחשוב שאפשר לצייר מרובע עם 4 קודקודים, ואפשר
להוסיף בצלע אחד עוד 100 קוקודים ואפילו שלא שיניתי א הצורה בכלל
המרכז זז מאוד הצידה.

DRYICE


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
liranr

   18:16   02.02.03   
אל הפורום  
  7. פתרון יותר טוב (אני מניח)  
בתגובה להודעה מספר 5
 
   אפשר לקחת את המקסימום והמינימום ב-X וב-Y ולעשות ביניהם ממוצע
הכל תלוי בהגדרה שלך למרכז, אבל זה אמור לעבוד לא רע


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
liranh  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 16.6.09
4157 הודעות, 1 פידבק
   20:56   02.02.03   
אל הפורום  
  8. זה ברור.  
בתגובה להודעה מספר 7
 
   בזה השתמשת גם ל-Zoom שכבר עשיתי.
אבל מה אחר כך?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
liranr

   09:36   03.02.03   
אל הפורום  
  9. בשביל האחר כך צריך קצת מתמטיקה  
בתגובה להודעה מספר 8
 
   אני פיתחתי עכשיו את הנוסחאות ואני לגמרי לא משוכנע שהן נכונות, אבל:
אנו מסובבים את הנקודה (x,y) מסביב לנקודה (h,k) בזווית a, ומקבלים נק'
חדשה (x2,y2). בתנאים האלה מתקיים:

x2 = (x-h)Cos(a)-(y-k)Sin(a)+h
y2 = (x-h)Sin(a)+(y-k)Cos(a)+k

זה אמור לעבוד...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
liranh  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 16.6.09
4157 הודעות, 1 פידבק
   11:53   03.02.03   
אל הפורום  
  10. אחי תודה- כנס  
בתגובה להודעה מספר 9
 
   ניסיתי את הנוסחא שלך והיא לא עבדה טוב...
אבל לא הבנתי כל כך איך הגעת לנוסחא. אתה מוכן להסביר לי?
TNX.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
dryice

   14:54   03.02.03   
אל הפורום  
  11. בוא נפתח ביחד:  
בתגובה להודעה מספר 10
 
   נקודה x,y יש לסובב סביב נקודה h,k בזווית a

ראשית נמצא את הווקטור בין הנקודות, זה הוא ךמעשה החיסור:
x-h,y-k
את הווקטור הזה נרצה להעביר לקוארדינטות פולאריות: הזווית שלו תהיה:
arctan((y-k)/(x-h))=deg1
האורך שלו הוא כמובן:
sqrt((x-h)^2+(y-k)^2)=R1
אנו נרצה לסובב בזווית a ונקבל ווקטור חדש בייצוג פולארי:
R2=R1
deg2=deg1+a
כעת אנו נרצה להעביר חזרה לקוארדינטות קרטזיות:
dx2=R2*cos(deg2)
dy2=R2*sin(deg2)
והנקודה החדשה סך הכל תהיה:
x2=h+dx2
y2=k+dy2
ובזה זה נגמר.

DRYICE


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
liranr

   15:39   03.02.03   
אל הפורום  
  12. שני דברים  
בתגובה להודעה מספר 10
 
   לנוסחא הגעתי פחות או יותר כמו dryice, רק פישטתי את כל הדברים לנוסחא
סופית
מה שכן אני ניסיתי את הנוסחא שלי על כמה סיבובים פשוטים (של 30,45,90 מעלות
שיהיה לי קל לבדוק שזה נכון) וקיבלתי תוצאות נכונות
איך הגעת למסקנה שזה לא עובד?
יכול להיות שבאמת לא אבל אני סקרן לברר


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
liranh  לחץ כאן להצגת דירוג המשתמש
חבר מתאריך 16.6.09
4157 הודעות, 1 פידבק
   07:47   04.02.03   
אל הפורום  
  13. תודה לשניכם!!  
בתגובה להודעה מספר 12
 
   כשאני אמשיך לעבוד על הפרוייקט בימים הקרובים אני אבדוק את מה שאתם אומרים


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net