ورود

نسخه کامل مشاهده نسخه کامل : رسم کمان در wpf سی شارپ



hhojjatt
27-01-2010, 17:35
با سلام من ميخواستم در
wpf
يک کمان رسم دوتا کد دارم اولي را
add
نمي کنه وايراد ميگيره وميگه اين جزو المنت هاي کانواس نيست ونمي تونه اضافه کنه
دوي هم يک کمان بسته رسم مي کنه
و من مي خواهم يک کمان باز رسم کنم متشکرم


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

hhojjatt
31-01-2010, 11:36
دوستان لطفا کمکم کنید اگر کد دیگری هم دارید که در wpf کمان باز رسم می کنه متشکر می شوم

_H2_
05-02-2010, 23:55
سلام
خوش امدید. گمانم دوماه از پست قبلیتان گذشته، شما همچنان مشکل کمان دارید ...

یک UserControl به پروزه تان اضافه کنید و کد زیر را در آن بنویسید:
(در نهایت UserControl را روی فرم قرار دهید! گمانم مشکلتان حل شود.)

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در کد فوق قلم و شعاع و نقطه شروع و پایان قابل تنظیم است.

hhojjatt
06-02-2010, 11:32
دوست عزیز متشکرم حیفم اومد به این پاسخ کامل و قشنگتون فقط یک دکمه تشکر بزنم

hhojjatt
06-02-2010, 23:50
دوست عزیز من با کد شما کمان را رسم کردم الان می خواهم وقتی از قسمتی از کانواس ماوس را درگ کردی تا نقطه پایانی کمان را رسم کنه مثل اینکه یک دایره را داخل مستطیل درwpf که قطر ان نقاط شروع و انتهای درگ است بکشه (خلاصه مثل برنامه paint) ولی قوص کمان یا خیلی کوچک می شود ویا خیلی بزرگ و از محدوده این نقاط خارج می شود به نظر شما من چیکار کنم متشکرم

_H2_
07-02-2010, 10:43
سلام
رسم دایره/بیضی پارامتر کمتری دارد، درگ یک مستطیل ابعاد دو قطر اصلی را مشخص میکند و پارامترهای رسم دایره/بیضی تامین میشود.

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

یا حداقل حداقل برای رسم یک کمان به سه نقطه در محور مختصات نیاز است.
در خصوص فرمول لازم الآن چیزی به ذهنم نمیرسد ولی سیستم رسم شما باید هرطور که صلاح میدانید حداقل سه نقطه را از کاربر بگیرید ...
( احتمالاً سرنخ فرمول ریاضی چنین است که این سه نقطه را باید روی سه ضلع یک مستطیل در نظر بگیرید، مستطیلی که میتواند دوران هم پیدا کرده باشد ... بعد دو ظلع مستطیل، زاویه دوران مستطیل و زاویه شروع و پایان کمان را محاسبه کنید ... )

=====

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

همانطور که DirectX در فضای سه بعدی حرف اول را میزند.
برای استفاده از کلاسها و توابع +GDI کافی است از فضای System.Drawing خود Framework استفاده کنید.