PDA

View Full Version : نحوه تبدیل مختصات سه بعدی به دوبعدی



Saber_Fatholahi
جمعه 21 مهر 1391, 15:19 عصر
سلام دوستان
من توی یه برنامه سی شارپ یک مکعب توی فرم رسم کردم، محور افقی برابر محور X محور عمودی برابر محور Y، و محور Z را به عنوان عمق در نظر گرفته ام.

حال می خواهم از کاربر مختصات سه بعدی دریافت کنم و اون روی مکعب نشان بدهم، چطور می تونم مختصات سه بعدی را تبدیل به مختصات دوبعدی کنم که با دادن این مختصات روی فرم بتونم اون پیکسل دلخواه نشان بدهم.

پیشاپیش از زمانی که صرف می کنید تشکر می کنم

k_jafarzade
دوشنبه 30 اردیبهشت 1392, 15:26 عصر
سلام
منم دنبال یه همچین چیزیم
شما جواب گرفتید؟

mousa1992
دوشنبه 30 اردیبهشت 1392, 15:37 عصر
سلام
منم دنبال یه همچین چیزیم
شما جواب گرفتید؟


کار کردن با کامپوننتهای ساخته شده هم زمان بر بود :بامزه: استادمون ازم پرسید تو این زمینه کار کردی ؟ گفتم نچ ولی تونستم برات مینویسم یخورده روش کار کردم دیدم واسم نمیصرفه بیخیالش شدم

ی ایده داشتم که پیاده سازیش کار اسونی فک نکنم باشه - دوس داشتی روش کار کن شاید به نتیجه برسی - محور های x , y رو که داریم گفتم اگه بشه ی بعد مجازی درست کرد که همون z هست و به جای اینکه توی فرم مختصات رو به صورت x و y بدی (با استفاده از کلاس point ) بیای از کلاس خودت استفاده کنی و x , y , z بهش بدی و Z ی خط فرضی هست که بین x , y قرار داره - در واقع باید فاصله از خط z رو محاسبه کنی و با استفاده از روابطی x , y هم بدست بیاری - دوتا نقطه با x, y های مساوی و z های مختلف درواقع توی صفحه x, y های مساوی ندارن

امیدوارم منظورمو خوب رسونده باشم

موفق باشی

abdorreza
چهارشنبه 29 اردیبهشت 1395, 08:53 صبح
سلام دوستان
من توی یه برنامه سی شارپ یک مکعب توی فرم رسم کردم، محور افقی برابر محور X محور عمودی برابر محور Y، و محور Z را به عنوان عمق در نظر گرفته ام.

حال می خواهم از کاربر مختصات سه بعدی دریافت کنم و اون روی مکعب نشان بدهم، چطور می تونم مختصات سه بعدی را تبدیل به مختصات دوبعدی کنم که با دادن این مختصات روی فرم بتونم اون پیکسل دلخواه نشان بدهم.

پیشاپیش از زمانی که صرف می کنید تشکر می کنم
سلام

فرض کنید نقاط سه بعدی شما اینها هستند :


x0
y0
z0


تبدیل به دو بعدی :


x2d = focal_length * x0 / z0
y2d = focal_length * y0 / z0