PDA

View Full Version : چرخاندن اشکال سه بعدی



abbas.exe
پنج شنبه 05 آذر 1383, 06:06 صبح
سلام
من ماتریس Rotate در حالت سه بعدی رو دارم


[cos a -sin a 0 0]
[sin a cos a 0 0]
[0 0 1 0]
[0 0 0 1]

و می خوام یک شکل سه بعدی رو به وسیله ی ای ماتریس rotate کنم
شاید بگید که [x y z 1 ] رو در اون ضرب کن
ولی شکل سه بعدی من رو ی monitor فقط x , y داره :sad2:
هل من ناصر ینصرنی

abbas.exe
جمعه 06 آذر 1383, 02:39 صبح
این ماتریس ها فقط زمانی کار میکنه که گوشه ی شکل روی نقطه (0,0,0) در دستگاه xyz باشد بس به عنوان مثال برای rotate کردن یا scale کردن یک مکعب ابتدا باید ان را به نقطه ی (0,0,0) متتقل کرد و بعد باید 8 نقطه ی گو شه های مکعب را در ماتریس مورد نظر ضرب کرد و مکعب را با مختصات جدید در xyz رسم کرد وعد به 2d منتقل کرد

MiRHaDi
یک شنبه 08 آذر 1383, 01:06 صبح
سلام
برای درس گرافیک میخوای یا میخوای شکل رو تو کامپیوتر عوض کنی ؟
اگه اولی که تو کتابتون هست ! اگه میخوای تو مانیتور کاری کنی با OpenGL کار کن
بای

abbas.exe
سه شنبه 10 آذر 1383, 02:42 صبح
جواب همونیه که در بالا به هش اشاره کردم

zoro21750
دوشنبه 12 بهمن 1383, 23:04 عصر
سلام. من بیکاری زد به سرم اینو نوشتم. نمیدونم به دردت میخوره یا نه. زبونشم سی ا.
یه خورده هم بد نوشتمش!

abbas.exe
سه شنبه 13 بهمن 1383, 00:38 صبح
دست شما درد نکنه
از لطفتون ممنون
من با java این کارو انجام دادم
به وسیله ی ضرب مختصات نقطه ها در ماتریس rotate و بعد تبدیل نقاط 3D به 2D
(ْضرب نقاط در ماتریس تبدیل پرسپکتیو یا پارالل)

zoro21750
سه شنبه 13 بهمن 1383, 16:57 عصر
ما هم جاوا بلدیما! :mrgreen:
آره منم همین کارو کردم. ولی نمیدونم تو کدش معلومه که این کارو کردم یا نه!
پرسپکتیو رو چه جوری میشه نشون داد؟
یه سوال دیگه: چه جوری میشه همینو به صورت استریو، 3D نشون داد؟

seyedof
جمعه 16 بهمن 1383, 01:05 صبح
سلام

ماتریسی که شما نوشتید ماتریس دوران سه بعدی حول محور Z است. و ارتباطی به محل قرارگیری شکل نداره! این ماتریس رو در هر نقطه ای ضرب کنید اوون نقطه رو به اندازه آلفا درجه حول محور Z دوران میده.

در مورد تبدیل سه بعد به دو بعد برای نمایش روی مانیتور هم قبلا پستی در این مورد توی همین انجمن یا سایر انجمنها وجود داره که روشهای اینکار توش هست به اینکار Projection میگن که انواع مختلفی داره یکیش Perspective Projection است. چیز ساده اییه توی گوگل جستجو کنید کلی مطلب میاد به اضافه فرمولهاش.
ممنون علی

abbas.exe
جمعه 16 بهمن 1383, 06:07 صبح
شرمنده جناب zoro ما منظورمون این نبود که ما شما جاوا بلد نیستید یا ما آخر جاوا هستیم .





perspective projection

[1 0 0 0]
[0 1 0 0]
[0 0 1 0]
[0 0 1/d 0]

sheyton kocholo
چهارشنبه 03 آبان 1385, 10:24 صبح
میشه بگین در این ماتریس dچه نقشی داره ؟

sheyton kocholo
چهارشنبه 03 آبان 1385, 10:30 صبح
من باید یه برنامه بنویسم که انعکاس و دوران وبزرگنمایی و انتقال رابر روی یک مکعب نشون بده میشه به من کمک کنید تا با راهنمایی این برنامه را بنویسم ؟