17-08-2010, 16:21
|
|
|
|
חבר מתאריך: 30.08.09
הודעות: 2,880
|
|
אוקיי... אני חושב שיש לי רעיון
בגלל שממש משעמם לי והנושא הזה מרתק אותי החלטתי קצת להשקיע D:
זה שרטוט שממחיש את ההמרה מ3D ל2D:
הנקודה שהתכנית שלך מקבלת היא [TEX](x, y)[/TEX] , היא מתורגמת מהנק' במרחב [TEX](x', y', z')[/TEX]
אם המצלמה נמצאת על ציר Z ו-d הוא המרחק בין המצלמה למישור XY (המצלמה נמצאת על הנקודה [TEX](0, 0, d)[/TEX] ),
אז לפי דמיון משולשים אפשר למצוא שהיחס הוא כזה:
[TEX]\frac{x'}{x}=\frac{d-z'}{d}[/TEX]
[TEX]\frac{y'}{y}=\frac{d-z'}{d}[/TEX]
בגלל ש-d לא משנה לך אתה צריך להציב d כך שהוא יהיה תמיד גדול מz'.
x ו-y ידועים לך.
כדי שיהיה יותר פשוט לראות את היחס נכתוב את המשוואות ככה:
[TEX]x'=\frac{d-z'}{d}\cdot x[/TEX]
[TEX]y'=\frac{d-z'}{d}\cdot y[/TEX]
נחכה בינתיים עם המשוואות האלה..
ופה בא הרעיון שלי, חוץ מזה שהצבת את המרחק של המצלמה, אתה יכול לבחור נקודה אחת
מתוך 4 הנקודות של המלבן ולהציב לה גם ערך z', נציב 0.
אז נקודה מס' 1 תהיה כפי שקיבלת אותה, אם קיבלת (4,5) אז היא תהיה (4,5,0).
זה נכון לעשות את זה רק לנקודה אחת כי כל שאר הנקודות לכאורה זזות ביחס אליה.
זו התמונה כרגע:
בצורה וקטורית נתון לנו ש:
[TEX]\vec{AB}=\vec{DC}[/TEX] - צלעות נגדיות שוות ומקבילות
וגם
[TEX]\vec{AB}\cdot \vec{BC}=0[/TEX] - זווית ישרה בין צלעות סמוכות
יש לך פה בוחטה של משוואות עם מלא נעלמים
[TEX](x'_2-4, y'_2-5, z'_2)=(x'_3-x'_4, y'_3-y'_4, z'_3-z'_4)[/TEX]
[TEX](x'_2-4, y'_2-5, z'_2)\cdot (x'_3-x'_2, y'_3-y'_2, z'_3-z'_2)=0[/TEX]
אז עד לפה זה נראה שיש משוואות שמייצגות את המיקומים של הקורדינטות ביחס לנקודה שהצבת,
ומשוואות שמייצגות את היחס בין התלת-מימד לדו-מימד.
עכשיו אתה תחליט איך לטפל בכל המשוואות האלה כי לי יש כאב ראש רק מלהסתכל עליהן
|