PDA

View Full Version : کشیدن یه خط صاف



hamed jalili
سه شنبه 23 خرداد 1385, 16:52 عصر
سلام دوستان
من با استفاده از دستور Drawline یه خط می کشم ؛ ولی حتما می دونین که یه خط صاف در نمی آید
خوب برای اینکه من بتونم یه خط صاف بکشم باید چیکار کنم ؟
راستی من مبتدی هستم ؛ پس لطفا کاملا در سطح پایین بفرمایید .
ممنون.








.

Mega7000
چهارشنبه 24 خرداد 1385, 10:02 صبح
دستور drawline چهار نقطه از شما می گیره:x1,y1,x2,y2
خب مختصاتی که به دستور drawline می دین باید xهای یکسان داشته باشن

hamed jalili
چهارشنبه 24 خرداد 1385, 12:50 عصر
دوست من منظور من این نبود

منظورم اینکه : یه خط میکشم مثلا از : 10 و 10 تا 50و50 ؛ یه خط کج و میشه گفت 45 درجه
خوب ؟ این خط کج هست ولی صاف کشیده نمیشه ( شکستگی داره )
نمی دونم چه طور بگم ؟!!
ببینید شما یه خط صاف دارین یه خط کج (مورب)
و یه خط صاف دارین و یه خط ناصاف ( مثل اینکه در Photoshop یه خط مورب بکشین و تعداد Pixel هاتون مثلا 3 باشه ، نتیجه میشه یه خط مورب ولی شکسته شکسته )

منظور من اینه که چه طور یه خط مورب ولی صاف بکشم
نمی دونم متوجه شدین یانه ؟




.

Mega7000
چهارشنبه 24 خرداد 1385, 18:47 عصر
من متوجه منظورتون می شم
ولی الان امتحان کردم اینطور نمی شه
کد زیر رو امتحان کنین
private void button1_Click(object sender, System.EventArgs e)
{
System.Drawing.Graphics op=this.CreateGraphics();
op.DrawLine(Pens.Black,10,10,50,50);
}

علیرضا مداح
چهارشنبه 24 خرداد 1385, 20:30 عصر
سلام دوست عزیز
برای اینکار خاصیت SmoothingMode مربوط به شی ء Graphics را بر روی HighQuality قرار دهید :


private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics gr = e.Graphics;
gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality ;
gr.DrawLine(new Pen(Color.Black,5),10, 100, 500, 10);
}

hamed jalili
پنج شنبه 25 خرداد 1385, 13:08 عصر
سلام دوستان
دوست عزیز mega7000 احتمالا شما منظور منو درست متوجه نشدین

آقای مداح منظورمو متوجه شدن و از ایشون تشکر میکنم
این کد رو هم امتحان میکنم اگه باز مشکلی بود می پرسم

دست شما درد نکنه .





.

hamed jalili
پنج شنبه 25 خرداد 1385, 18:28 عصر
آقای مداح عزیز
من فرموده شما را انجام دادم ولی یه مشکل دیگه برای به وجود آورد .
ببینید من در قسمت MouseMove یه برنامه نوشتم که یه خط میکشه . البته به این صورت که یه راس خط ثابت و راس دیگه با مکان ماوس حرکت میکنه در واقع ماوس سر دیگه خط رو با خودش اینور اونور میکشه
برای این کار من مختصات خط قبلی رو نگه میدارم و یه خط در مختصات جدید میکشم و یه خط دیگه همه رنگ زمینه در مختصات قبلی میکشم (در واقع خط کشیده شده قبلی رو پاک میکنم) - اول درست کار میرد ولی بعد از اینکه کیفیت کشیدن خط رو بالا بردم دیگه خط قبلی رو پاک نمی کنه .
میشه راهنمایی بفرمایین ؟

در واقع خط رو پاک میکنه ولی به صورت تو خالی (شاید من اشتباه متوجه میشم ) یعنی حاشیه خط میمونه ولی داخلش پاک میشه
خوب اگه این طور باشه ( به احتمال زیاد من درست حدس زدم - خط قبلی رو تو خالی میکنه به جای اینکه پاک کنه ) چه طور این مشکل رو برطرف کنم .

البته خط قبلی رو ( همون خطی که خط کشیده شده قبلی رو پاک میکنه ) ضخیم تر هم کردم ولی جواب نداد.

hamed jalili
جمعه 26 خرداد 1385, 12:25 عصر
البته آقای مداح من از کد :
Graphics myGraphics = base.CreateGraphics();

برای تعریف گرافیک استفاده کردم .

من همچنان منتظر پاسخ ها هستم -فقط لطفا کمی سریعتر - چون وقت کمی برای تحویل پروژه دارم .




.