SajjadKhati
کاربر فعال <A href="http://forum.majidonline.com/f
اصولا نقطه رسم نمیشه. خط کشیده میشه. حالا Line یا Bezier بستگی به خودتون داره. فاصله ایجاد میشه، چون نقطه می کشید. باید نقطه ها رو وصل کنید بهم.
درباره ی پست بالا ، ممنون و بعد از این پیام میخونم
درباره ی رسم خط هم ممنون . کشیدم و درست شد (هر چند باز هم نقاط و فاصله ی کوچیکی میمونه ولی 90 درصدش درست شد)
حالا یه تکسچر (فایل png با ابعاد 16 در 16) درست کردم و تقریبا همون الگوریتمی که برای رسم خط بکار بردم ، برای این هم بکار بردم ولی مشکلش اینجاست که وقتی این تکسچر را میخواد رسم کنه ، یکنواخت رسم میکنه و در پیکسل های بعدی اش که موس را میکشم ، فضای خالیِ بینِ تکسچر رو پر نمیکنه . یه عکس میزارم تا بهتر متوجه شین :
این هم کد مربوط بهش :
کد:
private Bitmap BitmapForGraphic;
private Graphics GraphicForm;
private List<Point> PointAllMouse;
public FormTest()
{
InitializeComponent();
this.BitmapForGraphic = new Bitmap(this.ClientSize.Width, this.ClientSize.Height);
this.GraphicForm = this.CreateGraphics();
this.PointAllMouse = new List<Point>();
}
private void FormTest_MouseMove(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
if (this.PointAllMouse.Count > 0)
{
Graphics graphicsInBitmap = Graphics.FromImage(this.BitmapForGraphic);
Bitmap bitmapTexture = new Bitmap(@"E:\2.png");
TextureBrush textureBrush = new TextureBrush(bitmapTexture);
Pen pen = new Pen(textureBrush, 16);
graphicsInBitmap.DrawLine(pen, this.PointAllMouse[this.PointAllMouse.Count - 1], e.Location);
this.GraphicForm.DrawImage(this.BitmapForGraphic, new Rectangle(new Point(0, 0), this.BitmapForGraphic.Size));
}
this.PointAllMouse.Add(e.Location);
}
}
البته رویداد MouseUp و یه رویداد دیگه هم کد داره ولی کد اصلی نیست که بماند
و این هم فایل تکسچر png با ابعاد 16 در 16 :
حالا سئوالم اینه که چجوری باید کد را تغییر داد تا با هر جابجایی موس ، دوباره توی همون پیکسل ، از اول بیاد و اون تکسچر را رسم کنه یا به عبارتی چجوری میشه فاصله هاشو پر کرد و توی اون فاصله هایی که موس را میکشیم ، باز هم همون تکسچر را رسم کنه یا به عبارتی ، چجوری مثل فتوشاپ ، یه تکسچر رو بصورت ممتد رسم کنه؟
دومین سئوال هم اینکه با اینکه تکسچرام (فایل png) ، رنگ قهوه ای هست ، ولی میشه کاری کرد که مثلا رنگ قهوه ای رو به رنگی که دلمون میخواد (مثلا رنگ قرمز) تبدیل کنه و تکسچر رو با رنگ قرمز رسم کنه؟
ممنون