PDA

View Full Version : حرکت دادن یک شکل در Canvas



صابر طهماسبی
شنبه 11 اردیبهشت 1389, 12:49 عصر
سلام
دوستان کسی می دونه چگونه می توان شکلی را که در Canvas یک Image رسم کردیم حرکت داد؟
البته بدون استفده از تکنیکهای قدیمی مثل پاک کردن شکل قبلی و رسم در مکان جدید.
مثل شی شارپ که وقتی شکلی را در یک panel رسم می شود ، می توان به را حتی شکل را جابجا کرد.

Felony
شنبه 11 اردیبهشت 1389, 13:13 عصر
خصیصه Canvas متدی رو برای این کار در اختیارتون نمیزاره ، شما میتونید اشکال رو به وسیله ی Shape روی یک پنل بکشید یا خودتون چیزی که در نظرتون هست رو پیاده سازی کنید که کمی مشکل هست ، شاید هم کامپوننت آماده ای برای این منظور وجود داشته باشه .

مصطفی ساتکی
شنبه 11 اردیبهشت 1389, 13:22 عصر
دوست عزیز . اگر شکلتون تو Canvas یک Image رسم شده خوب چه مشکلی دارید Image رو حرکت بدید تا شکلتون هم حرکت کنه.offset حرکت رو بالا بگیرید تا پرش تصویر هم به چشم نیاد

Felony
شنبه 11 اردیبهشت 1389, 13:29 عصر
دوست عزیز . اگر شکلتون تو Canvas یک Image رسم شده خوب چه مشکلی دارید Image رو حرکت بدید تا شکلتون هم حرکت کنه.offset حرکت رو بالا بگیرید تا پرش تصویر هم به چشم نیاد

منظور ایشون حرکت یک شئ رسم شده به وسیله متد Canvas هست ، مثلا شما یه وسیله متد Canvas یک دایره در شئ Image رسم میکنید ، حالا ایشون میخوان کدی بنویسن که این دایره یک شئ فرض بشه و بتونن به صورت مستقل و بدون حذف و رسم مجدد مختصات این دایره رو تغییر بدن .

صابر طهماسبی
شنبه 11 اردیبهشت 1389, 14:00 عصر
Delphi_CAT عزیز به خاطر توجهتان متشکرم.
SilverSoft عزیز به خاطر روشنگریتان متشکرم.

فکر کنم با Win32 بشه کاری کرد
تا ببینم چی میشه...

Felony
شنبه 11 اردیبهشت 1389, 18:08 عصر
داشتم تو نت میچرخیدم که این لینک رو پیدا کردم ، تو قسمت دانلود نمونه های exe رو دانلود کن ببین ، 1 مثال داره دقیقا همون چیزی هست که میخواستی .

http://plsoft.users.btopenworld.com/index.html

vcldeveloper
شنبه 11 اردیبهشت 1389, 19:26 عصر
فکر کنم با Win32 بشه کاری کرد
GDI چیزی برای درگ کردن تصویر به شما ارائه نمیکنه. اساسا درگ کردن تصویر ربطی به سیستم رسم گرافیکی ویندوز نداره، و باید تصویر مجددا رسم بشه.


offset حرکت رو بالا بگیرید تا پرش تصویر هم به چشم نیاد
برای مشکل پرش تصویر در هنگام حرکت، کافیه از DoubleBuffered استفاده بشه.

SAASTN
یک شنبه 12 اردیبهشت 1389, 00:49 صبح
منظور ایشون حرکت یک شئ رسم شده به وسیله متد Canvas هست ، مثلا شما یه وسیله متد Canvas یک دایره در شئ Image رسم میکنید ، حالا ایشون میخوان کدی بنویسن که این دایره یک شئ فرض بشه و بتونن به صورت مستقل و بدون حذف و رسم مجدد مختصات این دایره رو تغییر بدن .
برای همچین منظوری استفاده از کامپوننت های CAD بهتره. یه تحقیقی هم در مورد Graphic32 بکن. امکان لایه بندی و ترسیم چند شیئ روی همدیگه رو میده و هر کدوم از لایه ها هم قابل انتخاب و حرکتند، ترسیمات فوق العاده سریعتر از canvas ه.
اگه مشکلت با پاک کردن و ترسیم دوباره کند شدن ترسیماته، بهتره canvas رو فراموش کنی و بری سراغ opengl.