سلام به همه دوستان عزیز
من یه برنامه برای رسم شکل می خوام بنویسم. و می خوام یه صفحه شطرنجی داشته باشم و روی اون بتونم شکل رسم کنم مثل عکسی که براتون گذاشتم.چجوری اینکارو بکنم؟؟؟؟
سلام به همه دوستان عزیز
من یه برنامه برای رسم شکل می خوام بنویسم. و می خوام یه صفحه شطرنجی داشته باشم و روی اون بتونم شکل رسم کنم مثل عکسی که براتون گذاشتم.چجوری اینکارو بکنم؟؟؟؟
دوست من سلام
برای این کار بسته به این که شما می خوایید با چه کنترلی این کار رو انجام بدید باید اون کنترل رو ببرید توی مد گرافیکی و بعد از دستورات موجود برای رسم خط و ... استفاده کنید .
موفق باشید
استخدام برنامه نویس دات نت (Asp.net,C#,jquery,...)
ترجیحا خراسان شمالی ، بجنورد
به صورت پاره وقت و تمام وقت
ارسال اطلاعات و رزومه کاری به Job@tosa.ir
دوست عزیز من مبتدی هستم.به نظر شما با چه کنترلی کار کنم؟؟
کد رو گرفتم بررسی کنم براتون میفرستم جواب رو
شرمنده که دیر جواب میدم
سرم خیلی شلوغه
فقط یاد آوری کنید با پیام خصوصی
موفق باشید
استخدام برنامه نویس دات نت (Asp.net,C#,jquery,...)
ترجیحا خراسان شمالی ، بجنورد
به صورت پاره وقت و تمام وقت
ارسال اطلاعات و رزومه کاری به Job@tosa.ir
از اسم فایل معلومه که روی wpf بحث کرده . البته خیلی چیز خوبیه . ولی یکم بد قلقه . تا دستت بیاد 1 هفته ای طول میکشه . اگه عجله داری از توابع خود آبجکت های گرافیکی استفاده کن .
به عنوان مثال برای دسترسی به اینا ساده ترین راه رویداد paint فرم هستش . مثال زیر توی فرم یه خط رسم میکنه .
private void Form1_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawLine(Pens.Red, 100, 100, 300, 300);
}
البته این قضیه خیلی گسترده تر از این حرف هاست و مثال بالا بیشتر شبیه یه شوخی میمونه .
اگه برات جالب بود بگو تا یه خورده بیشتر ادامه بدم . الآن حوصله تایپ ندارم
در مورد کاری که قراره انجام بدی هم کمی توضیح بده
اگر اندازه فرم ثابت هست یه عکس بنداز پشت صفحه بعد روش هرچی خواستی رسم کن
با تشکر از شما دوست عزیز.از drawline استفاده کردم.این متد از رنگ کردن پیکسل ها استفاده می کنه و خیلی ساده هست.اگه شما تو برنامه توجه کرده باشید به راحتی می شه خط رسم شده رو انتقال داد و پاک کرد.در صورتی که در drawline اگر خطی رسم شد برای پاک کردن اون باید روی همون خط یه خط دیگه به رنگ فرم رسم کرد تا پاک شه و برای انتقال . . .
امید وارم منظورم رو فهمیده باشید.
در مورد برنامه ای که من می خوام بنویسم.می خوام اشکال هندسی تو صفحه شطرنجی رسم کنم و رو اون محاسبات انجام بدم.کاری که می خوام انجام بدم مثل بازی Bridge Builder هست.اگه لازمه بازی رو براتون ارسال کنم.
منتظر راهنمایی و نظرات قشنگ و استادانه شما هستم.
با اجازه از شما دوست عزیز اینکار رو انجام دادم.فکر کنم کنترل کردنش راحت تره.با متد drawline صفحه رو 50 پیکسل به 50 پیکسل خط کشی کردم.اگه راه بهتری سراغ دارید لطفا بگید.
کد HTML:i = ActiveForm.Width / 50; for (ii = 0; ii <= i; ii++) { formGraphics.DrawLine(myPen, ii * 50, 0, ii * 50, ActiveForm.Height); if (ii == i / 2) { Centerx = i/2; formGraphics.DrawLine(new Pen(Color.Blue), ii * 50, 0, ii * 50, ActiveForm.Height); }//end of if i/2 }//end of for i = ActiveForm.Height / 50; for (ii = 0; ii <= i; ii++) { formGraphics.DrawLine(myPen, 0, ii * 50, ActiveForm.Width, ii * 50); if (ii == i / 2) { Centery = i/2; formGraphics.DrawLine(new Pen(Color.Blue), 0, ii * 50, ActiveForm.Width, ii * 50); }//end of if i/2 }//end of for
برای اجرای این طرح پیشنهاد میکنم از panel استفاده بکنی . توی panel دقیقا مثل form میتونی خط رسم کنی . دقیقا همون رویداد هارو داره . برای انتقالشون هم میتونی کل panel رو move کنی . نیاز به رسم مجدد نیست . اگه خواستی میتونی امکانات خاص هم بهش اضافه بکنی . مثلا یه usercontrol بسازی که توش یه panel داشته باشه که همراه کنترل تغییر اندازه بده . میتونی برای سایز مربع ها هم یه خصوصیت در نظر بگیری . اگر نیاز به خاصیت snap to grid برای بازیت داری بهتره از روش آخری استفاده کنی .( snap to grid یعنی تقاطع خطوط قابل شناسایی باشه و بتونی مثلا یه سری شئ رو بهشون وصل کنی).
راستی .... لینک این بازیه رو هم بزار ببینیم چیه ..
یک نمونه برنامه توی قسمت نمونه برنامه های سی شارپ هست که فک می کنم کارتون رو راه می ندازه .
بنده هم الان نمی تونم براتون نمونه برنامه بزارم به خاطر نگهداری سایت امکانش فراهم نیست.شمارمو اگر نیاز بود بفرمایید تا بدم و تماس بگیرید تا در صورت نیاز راهنمایی کنم
موفق و پیروز باشید
استخدام برنامه نویس دات نت (Asp.net,C#,jquery,...)
ترجیحا خراسان شمالی ، بجنورد
به صورت پاره وقت و تمام وقت
ارسال اطلاعات و رزومه کاری به Job@tosa.ir
این بازی Bridge Builder رو download کردم . حرکت جالبیه . اگه دقیقا منظورت همینه باید اون جریان snap to grid رو حتما در نظر بگیری . ضمنا برای راحتی کار باید هرکدوم از آبجکت ها ( فولاد . کابل و ...) یک کلاس بسازی . دردسر کار اینجوری کمتره .
برای شبیه سازی و فیزیک هیچ نظری ندارم
یه کنترل panel بزار روی فرمت و توی رویداد paint مربوط به کنترل این کد رو بنویس .
int scale = 10;
int w = panel1.Width / scale;
int h = panel1.Height / scale;
int i,j;
for(i=0;i<=w;i++)
e.Graphics.DrawLine(Pens.Blue, i * scale, 1, i * scale, this.Height);
for (j = 0; j <= h; j++)
e.Graphics.DrawLine(Pens.Blue, 1, j * scale, this.Width , j * scale);
این کد موقع جابجایی یا resize کردن کنترل مشکلی نداره و با توجه به scale (طول و عرض هر سلول) جدول رو دوباره رسم میکنه . اگه من جای شما بودم برای انجام این کار یه usercontrol درست میکردم که بشه راحت تر باهاش کار کرد. مثلا میشه scale یا رنگ جدول و پس زمینه و ... رو بصورت یه خصوصیت توی usercontrol تعریف کرد. برای پیاده سازی خاصیت snap to grid و رسم اتصالات هم کارتو راحت تر میکنه .
دوست عزیزخوب این userControl که درست کردم.چجوری می تونم از داخل فرم تغییر سایز بدمش؟؟شما این برنامه که گذاشتم رو دیدید؟؟؟؟طریقه رسم line رو فهمیدید؟؟؟
آخرین ویرایش به وسیله morrteza323 : دوشنبه 01 شهریور 1389 در 15:43 عصر
usercontrol مثل تمامی کنترل های دیگه (مثلا textbox) قابلیت تغییر سایز و .. داره . مباحث مربوط به طراحی uc توی سایت مطرح شده (سرچ) .
اون برنامه ای هم که گذاشتید یک مثال کامل از نحوه ی رسم با کمک wpf هست . برنامه ی خیلی کاملیه . اشکال اصلی رو رسم میکنه با قابلیت تغییر رنگ و ... ذخیره کردنشم برداریه . همرو توی یه فایل xml میریزه .
قبلا عرض کردم ..
wpf خیلی چیز خوبیه . کارها خیلی قشنگ از آب در میان . ولی یاد گرفتنش یه خورده دردسر داره .از اسم فایل معلومه که روی wpf بحث کرده . البته خیلی چیز خوبیه . ولی یکم بد قلقه . تا دستت بیاد 1 هفته ای طول میکشه . اگه عجله داری از توابع خود آبجکت های گرافیکی استفاده کن .
البته این نظر منه .