PDA

View Full Version : سوال: رسم خط در مختصاتی غیر از مختصات داده شده



m_soheyl_s
جمعه 18 اسفند 1391, 11:39 صبح
با استفاده از دستورات زیر می خوام یک زاویه ی قائم رسم کنم.

private void Form1_Paint(object sender, PaintEventArgs e)
{
// Create pen.
Pen grnPen = new Pen(Color.Green, 3);

// Draw line to screen.
e.Graphics.DrawLine(grnPen, 187, 230, 187, 369);
e.Graphics.DrawLine(grnPen, 187, 369,430, 369);
}

این مختصاتی که بهش دادم رو از روش زیر به دست آوردم.

private void Form1_Click(object sender, EventArgs e)
{
Point position = Cursor.Position;
MessageBox.Show(position.ToString());
}
و در نتیجه در مختصاتی دیگر این زاویه رسم می شود.:متفکر:

FastCode
جمعه 18 اسفند 1391, 12:39 عصر
مشکلتون دقیقا چیه؟
کد به نظر درسته.

abbas.oveissi
جمعه 18 اسفند 1391, 12:49 عصر
با استفاده از دستورات زیر می خوام یک زاویه ی قائم رسم کنم.

private void Form1_Paint(object sender, PaintEventArgs e)
{
// Create pen.
Pen grnPen = new Pen(Color.Green, 3);

// Draw line to screen.
e.Graphics.DrawLine(grnPen, 187, 230, 187, 369);
e.Graphics.DrawLine(grnPen, 187, 369,430, 369);
}

این مختصاتی که بهش دادم رو از روش زیر به دست آوردم.

private void Form1_Click(object sender, EventArgs e)
{
Point position = Cursor.Position;
MessageBox.Show(position.ToString());
}
و در نتیجه در مختصاتی دیگر این زاویه رسم می شود.:متفکر:

دوست عزیز خب شما مختصات کشیدن زاویه را به طور کامل نوشتید و هر موقع روخداد paint اجرا بشه در اون نقطه زاویه را رسم میکنه. حالا نمیدانم منظورتان از کد داخل رویداد Click چه بوده.بیشتر توضیح دهید تا بشه کمک کرد

m_soheyl_s
جمعه 18 اسفند 1391, 13:41 عصر
مشکلتون دقیقا چیه؟
کد به نظر درسته.
اون قسمت از فرم که میخوام رسم نمیشه.

دوست عزیز خب شما مختصات کشیدن زاویه را به طور کامل نوشتید و هر موقع روخداد paint اجرا بشه در اون نقطه زاویه را رسم میکنه. حالا نمیدانم منظورتان از کد داخل رویداد Click چه بوده.بیشتر توضیح دهید تا بشه کمک کرد
زاویه نخواستیم. حتی یکی از این خطها رو هم جایی که میخوام نمی کشه.
منظور کد داخل رویداد Click هم این بود که با استفاده از اجراش مکان مورد نظریعنی دو نقطه ای که میخوام به وسیله ی یک خط بهم وصل بشه رو به دست آوردم و سپس بدون تغییر سایز فرم، مختصات به دست اومده رو به کد DrawLine اضافه کردم.

erfan_urchin
جمعه 18 اسفند 1391, 14:15 عصر
این مختصاتی که بهش دادم رو از روش زیر به دست آوردم.
دوست عزیز روش به دست اوردن مختصاتتون اشتباهه
این روشی که شما استفاده کردی مختصات موس روی صفحه کامپیوتر رو به دست میاره. اگه شما میخوای مختصات موس روی صفحه فرم به دست بیاد باید از کد زیر استفاده کنی
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
label1.Text = e.Location.ToString();
}

abbas.oveissi
جمعه 18 اسفند 1391, 14:17 عصر
دوست عزیز ببین مشکلت رو حل میکنه این برنامه که پیوست کردم.

باید از رویداد mouseClick استفاده کنید

m_soheyl_s
جمعه 18 اسفند 1391, 17:54 عصر
خیلی ممنون از دوستان، حل شد.
یک سوال دیگه اگر فرم به حالت ماکزیمم رفت، چی کار کنم که این خط هم متناسب با سایز صفحه بزرگ شده و مکان هم با توجه به نسبت بزرگ شدن تغییر مکان ندهد. میشه آیا؟
چون نقاط ثابت هستند. و قرار نیست مثل برنامه ی بسیار خوب abbas.oveissi (http://barnamenevis.org/member.php?174698-abbas.oveissi) عزیز از کاربر گرفته بشه.
یک راهش اینه که از کاربر خواست بشه که ماکزیمم نکنه، که اصلا جالب نیست.

abbas.oveissi
جمعه 18 اسفند 1391, 18:21 عصر
خیلی ممنون از دوستان، حل شد.
یک سوال دیگه اگر فرم به حالت ماکزیمم رفت، چی کار کنم که این خط هم متناسب با سایز صفحه بزرگ شده و مکان هم با توجه به نسبت بزرگ شدن تغییر مکان ندهد. میشه آیا؟
چون نقاط ثابت هستند. و قرار نیست مثل برنامه ی بسیار خوب abbas.oveissi (http://barnamenevis.org/member.php?174698-abbas.oveissi) عزیز از کاربر گرفته بشه.
یک راهش اینه که از کاربر خواست بشه که ماکزیمم نکنه، که اصلا جالب نیست.

خب یکم توضیح بده یکم،اگه خط ها صاف باشه البته میشه امتداد دادشون،میتونی توی رویداد resize فرم ببینی طولی و عرضی چقدر بزرگ شده و خط هاتو به اندازه همون ادامه بدی

m_soheyl_s
جمعه 18 اسفند 1391, 19:04 عصر
خب یکم توضیح بده یکم،اگه خط ها صاف باشه البته میشه امتداد دادشون،میتونی توی رویداد resize فرم ببینی طولی و عرضی چقدر بزرگ شده و خط هاتو به اندازه همون ادامه بدی
هدف کلی از این خطها، مشخص کردن یک مسیر توی یک عکس نقشه است و خطوط صاف هستند.
رویداد resize دو تاست begin و end کدومش؟
چه کدی باید بزارم توش؟
باز هم سپاسگزار

m_soheyl_s
شنبه 19 اسفند 1391, 00:28 صبح
یک resize خالی هم پیدا کردم، اما حالا چه کدی باید بزارم؟
چه جوری خط رو هم Resize کنم؟

abbas.oveissi
شنبه 19 اسفند 1391, 01:41 صبح
یک resize خالی هم پیدا کردم، اما حالا چه کدی باید بزارم؟
چه جوری خط رو هم Resize کنم؟

آقا صبر کن اول خودم باهاش ور برم ببینم میتونم ایدمو پیاده کنم ، اگه شد برات میذارم جوابشو،کار داشتم تا الان، گذاشتم شاید کسی بیاد جوابتو بهتر بده.

abbas.oveissi
شنبه 19 اسفند 1391, 13:54 عصر
یک resize خالی هم پیدا کردم، اما حالا چه کدی باید بزارم؟
چه جوری خط رو هم Resize کنم؟

آقا اینو ببین،من یه همچین چیزی مدنظرم هست،مثلا ببین خط کش میاد.
راستی یه تحقیق روی wpf کن شاید بتونه کمکت کنه،آخه یه نقشه رو نمیتونی اینجور که من میگم بزرگ کوچیک کنی فکر کنم.

m_soheyl_s
شنبه 19 اسفند 1391, 19:20 عصر
آقا اینو ببین،من یه همچین چیزی مدنظرم هست،مثلا ببین خط کش میاد.
راستی یه تحقیق روی wpf کن شاید بتونه کمکت کنه،آخه یه نقشه رو نمیتونی اینجور که من میگم بزرگ کوچیک کنی فکر کنم.

ممنون از کمکتون، حقیقتش این یک پروژه ی دانشجویی مسیر یاب بر روی یک نقشه است. با استاد صحبت کردم ، قرار بر ثابت گرفتن سایز شد و نیازی به resizze کردن نیست.فعلا تمرکزم رو باید بزارم روی گراف و مسیریابی.
باز هم ممنون.

abbas.oveissi
شنبه 19 اسفند 1391, 19:32 عصر
ممنون از کمکتون، حقیقتش این یک پروژه ی دانشجویی مسیر یاب بر روی یک نقشه است. با استاد صحبت کردم ، قرار بر ثابت گرفتن سایز شد و نیازی به resizze کردن نیست.فعلا تمرکزم رو باید بزارم روی گراف و مسیریابی.
باز هم ممنون.

خواهش میکنم :لبخندساده:
موضوع خیلی جذابیه،رووش خیلی تحقیق کن.امیدوارم موفق باشی