PDA

View Full Version : سوال: حرکت گرافیکی Oval Shape در سی شارپ



Mahdi-PLus
پنج شنبه 10 اسفند 1391, 11:20 صبح
سلام. من تو سی شارپ مطابق با شکل زیر 4 تا OvalShape ساختم و برای هر کدوم یه تصویر پس زمینه دادم. عکس زیر قسمتی از برنامه من هست:

http://axgig.com/images/04385460448352588930.jpg

حالا با کلیک روی button (که از قبل ساختم) میخوام شکل شماره یک بصورت گرافیکی بیاد به سمت شکل شماره 2 و جای اون مستقر بشه. هم زمان شکل شماره 2 به 3 و 3 به 4 و 4 به 1 منتقل خواهد شد. در حقیقت میخوام انتقال ها بین 4 شکل به صورت زیر باشه و البته گرافیکی هم باشه:


http://axgig.com/images/56731123201093066986.jpg

البته فقط این نوع دوران رو نمیخوام انجام بدم و میخوام دوران های عمودی و افقی و ضربدری و ... رو انجام بدم ولی نمیدونم چطور باید گرافیکی باشه:


http://axgig.com/images/59649269479616223454.jpg

http://axgig.com/images/27388856034625414223.jpg

http://axgig.com/images/28558332940506922427.jpg

میخوام این انتقال ها لحظه ای نباشه و گرافیکی انجام بشه. تو خود سی شارپ میشه این کار رو انجام داد یا باید از WPF کمک گرفت؟ اگه میشه چطوری؟

mousa1992
پنج شنبه 10 اسفند 1391, 19:16 عصر
سلام
در مورد نحوه ی انجام این کار راهنماییتون می کنم
شما چهار مختصات دارید که محل قرار گیری شکل ها هستن ، نقاط 1 و 2و3 و 4
خب قراره شکل 1 به سمت 2 حرکت کنه ، برای این کار ی تایمر قرار میدی و در هر tick شما به اندازه یک یا چند واحد محل شکلتون رو به سمت نقطه 2 میبرید و این روند تا جایی ادامه داره که x مربوط به location کنترل برابر بشه با x نقطه 2
برای اونایی که ضربدری حرکت میکنن باید x , y رو اضافه و یا کم کنید تا به محل مورد نظرتون برسه

نمونه پروژه رو براتون نوشتم دانلود کنین

100682

موفق باشید

Mahdi-PLus
پنج شنبه 10 اسفند 1391, 22:49 عصر
این روش چند تا اشکال کلی داره:
یکی اینکه حتی وقتی Interval تایمر یک هست سرعت خیلی کمه و قابل قبول نیست. دوما شکل وقتی داره جابجا میشه هی تصویرش قطع و وصل میشه! یعنی انگار هی تصویر میره و میاد! بعد من میخوام شتاب در قسمت های مختلف حرکت متفاوت باشه. یعنی اول شتابش کم باشه بعد شتاب بگیره آخرای راه شتابش کم بشه. میخوام سریع همه ی تصاویر منتقل بشن و حین منتقل شدن یه خط به صورت گرافیکی پر رنگ و بعد کم رنگ بشه. من باید از WPF کمک بگیرم؟ یعنی واقعا سی شارپ با این همه ادعا نمیتونه این کار ها رو بکنه؟!!! من برای اینکه بهتر منظورم رو برسونم انیمیشن زیر رو ساختم تا بهتر متوجه بشین:
دانلود انیمیشن (http://uplod.ir/oroa9p2lv2nl/Program_Animation.zip.htm)
خواهش میکنم اگه کسی چیزی بلده بگه ما هم یاد بگیریم چون تکمیل این برنامه خیلی مهمه. ممنون از همه دوستان.

ali reza mansoori 2
جمعه 11 اسفند 1391, 21:52 عصر
فقط و فقط WPF
برای راحتی کار میتونید با کمترین کد نویسی با نرم افزار Blend این پروژه رو انجام بدید

mousa1992
شنبه 12 اسفند 1391, 00:29 صبح
سلام
پیشنهاد منم استفاده از wpf هست
بحث قدرت نیست عزیز ، مسئله اینه که تو سی شارپ برا پردازش این کارا از cpu استفاده میشه ولی wpf از gpu (پردازنده گرافیک که سرعتی حدود 14 برابر cpu ها رو داره ) استفاده میکنه _ بیشتر در موردشون دوست داشتین مطالعه کنین
من متاسفانه نتونستم فایل انیمیشن رو دان کنم ولی با توضیحاتی که دادید فک میکنم همه رو میشه پیاده سازی کرد ولی خب یخورده پیچیدگی بیشتر میشه
برا سرعت بالاتر در حرکت شکل ها میتونی از backgroundworker ها استقاده کنی ( به جای یک تایمر ی thread دیگه میاد کار شمارش و تکرار رو انجام میده و شرایطو بررسی میکنه و در صورت نیاز ui رو اپدیت میکنه ) که تست کردم جواب میده

موفق باشید

Mahdi-PLus
شنبه 12 اسفند 1391, 15:09 عصر
من سوال خودم رو تو بخش WPF تو آدرس زیر مطرح کردم اما متاسفانه کسی جواب نداد. من این پروژه رو از نو تو محیط Blend طراحی کردم. حالا سوال اینه که من گطور باید با WPF این کار رو انجام بدم؟
حرکت دادن به Ellipse در Blend (http://barnamenevis.org/showthread.php?386782-%D8%AD%D8%B1%DA%A9%D8%AA-%D8%AF%D8%A7%D8%AF%D9%86-%D8%A8%D9%87-Ellipse-%D8%AF%D8%B1-Blend&p=1712550)

Mahdi-PLus
شنبه 12 اسفند 1391, 19:58 عصر
من از کد هاش سر در نمیارم و میخوام این کار رو در محیط Blend انجام بدم...:

حرکت دادن به Ellipse در Blend (http://barnamenevis.org/showthread.php?386782-%D8%AD%D8%B1%DA%A9%D8%AA-%D8%AF%D8%A7%D8%AF%D9%86-%D8%A8%D9%87-Ellipse-%D8%AF%D8%B1-Blend&p=1712550)