PDA

نسخه کامل مشاهده نسخه کامل : چيزي شبيه اتوكد ةمين !! و ديگر هيچ!!!



saman2644
29-08-2010, 11:41
سلام بر علماي اعلام و مراجع عظام
من يكسري ترسيم با استفده از دايركت انجام دادم و ميخوام پن و زوم رو براش بسازم
براي عمل پن:
پن يعني جابه جايي از يك نقطه به نقطه ديگر
يعني جابه جايي به اندازه نقطه اي كه ويل موس فشار داده شده تا نقطه اي كه ويل موس برداشته شده
ولي مشكل اينه كه حاصل تفريق ان دو نقطه بر يك دستگاه مختصات هست و ترسيم ها دستگاه مختصات ديگر
يعني چي؟
يعني اينكه اندازه خطي با طول 1 داخل محيطي كه ترسيم انجام شده با اندازه خطي با طول يك روي پنل فرم هم خواني ندارد
يعني تو ميزني يك ميليمتر جابه جا بشه اما 1 كيلومتر جابه جا ميشه
چگونه مشكل رو حل كنم؟
و مشكل ديگه اينكه وقتي زوم انجام ميدم يا بهتر بگم scale انجام ميدم اين scale نسبت به مركز مختصات انجام ميشه براي انكه نسبت به نقطه اي كه موس قرار داره scale انجام بشه چه كار بايد بكنم؟

pezhmax
29-08-2010, 18:06
اول باید بگی ترسیمت با استفاده از امکانات دو بعدی این کتابخانه است یا سه بعدی؟
به نظر میاد تو محیط سه بعدی باشه(از روی مساله ای که راجع به زوم گفتی میگم). اگه دقیق بگی راحتتر میشه جواب داد.

saman2644
31-08-2010, 10:50
من اين برنامه رو
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
نوشتم الان بايد مختصات نقطه اي كه موس كليك شده در دستگاه مختصات رو بيرون بيارم
اين برنامه رو نوشتم و براي عمل picking [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
طبق اين مقاله كد زير رو نوشتم:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
مشكل كدك كجاست كه درست كار نميكنه؟

pezhmax
31-08-2010, 22:22
اینطور که به نظر میاد شما تو محیط سه بعدی داری کار میکنی.
برای کار کردن تو این محیط شما حتما یه دوربین نیاز داری که viewport کارت محسوب میشه. مشکل اصلی هم اینه که برای جابجایی و درشت نمایی میای شی ایجاد شده خوتو جابجا میکنی و یا scale میکنی.
این کار کاملا غلطه. باید برای جابجایی دوربینتو pan کنی. یعنی در جهت صفحه عمود بر صفحه نما (همون صفحه ای که داری از دیدش view کارتو میبینی) دوربین رو جابجا کنی. برای زوم هم باید یا دوربین رو در راستای نما عقب یا جلو ببری که بهش میگن حرکت dolly و یا فاصلاه کانونی دوربین رو تغییر بدی که بهش میگن zoom. در حالت اول پرسپکتیو صحنه تغییر میکنه و لی در حالت دوم پرسپکتیو ثابت میمونه.
در کل اگه من میخواستم یه همچین برنامه ای رو بنویسم به جای directX از کتابخانه XNA استفاده میکردم.XNA برای نوشتن بازیهای کوچیک تو ویندوز و ایکس باکس استفاده میشه و بر پایه همون directX پیاده سازی شده. خیلی از امکانات مثل همین دوربین و محسبات ماتریسی و همینطور ترسیم اشیا در یه محیط سه بعدی رو به صورت آماده داره. مجانی هم هست میتونی از سایت microsoft دانلودش کنی. پروژه هاش به ویژوال استودیو اضافه میشه. بگردی چندتا کتاب هم تو اینترنت هست که میتونی دانلودشون کنی.